PHP:爆炸但忽略转义分隔符

Geo*_*ith 6 php

我有一个flatfile数据库,它是由分隔符分隔的数据.

我允许人们在他们的输入中使用分隔符,但我确保\事先用它来逃避它.

问题是我的explode()函数仍然试图拆分转义的分隔符,所以如何告诉它忽略它们?

Sjo*_*erd 8

请改用preg_split.通过使用正则表达式,只有在前面没有反斜杠的情况下才能匹配分隔符.

编辑:

preg_split('~(?<!\\\)' . preg_quote($delimeter, '~') . '~', $text);
Run Code Online (Sandbox Code Playgroud)

  • 为了允许转义反斜杠,因此可以键入 `\\ ` 并获得 `\ `,而不会拆分字符串,请对正则表达式使用此改进:`/(?&lt;![^\\]\\), /`(使用 `,` 作为分隔符) (2认同)