Es scheint ein Problem mit magischen Zitaten zu sein. Die ursprüngliche Zeichenfolge enthält nur \ n und \ n \ n und \ n \ n \ n und \ n \ r und so weiter. Diese Zeilenumbrüche werden vom Browser nicht interpretiert.Wie entfernen Sie mehrere Zeilenumbrüche ( n) aus der JSON-Zeichenfolge?
Was wir tun möchten, ist: zu ersetzen mehr als 2 Zeilenumbruch mit nur 1 single \ n.
Was wir bisher versucht haben: viele verschiedene reguläre Ausdrücke mit preg_replace, aber die \ n wird nicht rausgeschmissen.
Irgendwelche Ideen?
Heres ein Beispiel (auf Ihre Vorschläge aktualisiert - aber immer noch nicht funktioniert):
echo '<h3>Source:</h3>';
$arr_test = array(
'title' => 'my title',
'content' => 'thats my content\n\n\n\nwith a newline'
);
$json_text = json_encode($arr_test);
$json_text = stripslashes($json_text); //if I leave that out, then \\n will echo
echo $json_text;
// OUTPUT: {"title":"my title","content":"thats my content\n\n\n\nwith a newline"}
echo '<h3>Result 1:</h3>';
$pattern = '/\n{2,}/';
$result1 = preg_replace($pattern,"x",$json_text);
echo $result1;
// OUTPUT: {"title":"my title","content":"thats my content\n\n\n\nwith a newline"}
echo '<h3>Result 2:</h3>';
$result2 = preg_replace('/([\n]+)/s', 'x', $json_text, -1, $count);
echo $count;
// OUTPUT: 0
echo $result2;
// OUTPUT: {"title":"my title","content":"thats my content\n\n\n\nwith a newline"}
Ich denke, die zweite reguläre Ausdruck Sie versucht hat ein Tippfehler beim vierten Charakter! (aka: Bitte zeigen Sie einige Ihrer Arbeit und die Ergebnisse, so ist es einfach zu sehen, ob es nur ein Fehler im Ausdruck ist, oder etwas anderes (seltsame Sachen in der JSON)) – Nanne
Was hast du probiert? Und hast du den Modifikator/s eingeschlossen, der neue Zeilen enthält? –