PHP拆分多行不起作用

时间:2012-03-07 10:59:11

标签: php regex file line new-operator

我有一个xml中的正则表达式,如

<sectiondelimiter><![CDATA[/--------------------------------------------------------------------------------\n\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*/]]></sectiondelimiter>

我用SimpleXML读出

$data = preg_split($file->sectiondelimiter, $my_file, null, 1 );

如果我使用file_get_contents读取文件,这里是一个摘录,它不会拆分并返回一个大小为1的数组。

--------------------------------------------------------------------------------
********************************************************************************

-------------------------------------------------------------------------------- ClassicCLI ENABLED:  Yes

--------------------------------------------------------------------------------
********************************************************************************

-------------------------------------------------------------------------------- start:  no interval:  60 address: serverkey: keyvalue:

--------------------------------------------------------------------------------
********************************************************************************

--------------------------------------------------------------------------------

会发生什么?如果我使用a regex tool,它会按预期分裂。

编辑:这是原始正则表达式:

/--------------------------------------------------------------------------------.\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*/s

1 个答案:

答案 0 :(得分:2)

将正则表达式更改为

/-{80}\s+\*{80}/

这允许在- s行和* s行之间的任何类型的空格,无论用多少个字符来表示换行符。