Разрывы строк в PHP Regex не будут удалены из импортированных данных описания Facebook

Я нахожусь на грани сумасшествия здесь. Я пытаюсь удалить окончания строк из строки в php, но ни один из существующих методов не работает, и я не могу понять, почему нет.

Я пробовал следующие методы:

$result = str_replace(array("\n", "\r"), '', $string));
$result = preg_replace("/\n/, '', $string"));
$result = preg_replace("/\n|/r|/s/, '', $string")); // this one does remove the whitespace though
$result = str_replace(PHP_EOL, '',trim(rtrim($string)));

И много, много других вариаций …

Это заставляет меня думать, что это может быть чем-то другим, вызывающим проблему, потому что мой тест прост.

var_dump($originalString);
$test = " stringl \n";
$testWithoutLineBreak = preg_replace("/\n/", '', $test);
$originalString = preg_replace("/\n/", '', $originalString);
var_dump($test);
var_dump($testWithoutLineBreak);
var_dump($originalString);

Дает следующий результат:

string(13) " stringl
"string(10) " stringl
"string(9) " stringl "string(13) " stringl
"

Обратите внимание на разницу в числе: тестовая строка, которую я сделал для репликации оригинала, содержит 10 символов с переносом строки, в то время как исходная строка содержит 13 символов.
Также preg_replace работает на моей тестовой строке, но не на оригинальной.

В конце концов я попытался поместить все это в скрытую программу обнаружения символов:

string(13)[Space]"[Space]stringl[End of Line(LF)]
"[End of Line(LF)]
string(10)[Space]"[Space]stringl[Space][End of Line(LF)]
"[End of Line(LF)]
string(9)[Space]"[Space]stringl[Space]"[End of Line(LF)]
string(13)[Space]"[Space]stringl[End of Line(LF)]
"

Там нет результата.

Есть ли объяснение этой магии? Спасибо!

0

Решение

Иногда в таких ситуациях вас обманывают символы / байтовые значения, которые вы не можете «увидеть» при просмотре строки в виде простого текста или HTML.

Вы можете, например, использовать urlencode сделать отладочный вывод значения, чтобы вы могли определить, каковы действительные значения байтов в этих позициях.

Это обычно помогает сузить проблемы, как это.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]