我有一个具有此内容的file.txt:
{"name":"merli"}{"name":"berta"}{"name":"ivan"}
{"name":"joan"}
{"name":"mireia"}{"name":"pol"}
{"name":"gerard"}
我正在使用此代码,但我不知道如何用“} {”分隔而不会丢失括号
$exploded = preg_split('/\r\n|\r|\n|}{/', 'file.txt');
我得到的结果是:
{"name":"merli"
"name":"berta"
"name":"ivan"}
{"name":"joan"}
{"name":"mireia"
"name":"pol"}
{"name":"gerard"}
我需要这个:
{"name":"merli"}
{"name":"berta"}
{"name":"ivan"}
{"name":"joan"}
{"name":"mireia"}
{"name":"pol"}
{"name":"gerard"}
您可以将正则表达式与preg_match_all
一起使用:
$fileContents = '
{"name":"merli"}{"name":"berta"}{"name":"ivan"}
{"name":"joan"}
{"name":"mireia"}{"name":"pol"}
{"name":"gerard"}
';
preg_match_all('/{[^{]+}+?/', $fileContents, $matches);
echo $result = join("\n", $matches[0]);
输出:
{"name":"merli"}
{"name":"berta"}
{"name":"ivan"}
{"name":"joan"}
{"name":"mireia"}
{"name":"pol"}
{"name":"gerard"}
您可以尝试here。
我想
$exploded = str_replace('}{', "}\n{", $file_contents);
足够。