Я беру данные из формы textarea и помещаю ее в длинную строку. Input, как это:не удаляет пробелы в строке
Country: France
City: Paris
Street: Champ
Затем поместите его в длинной линии:
$line = $_POST['input'];
сейчас, мне нужно заменить пробелы и новые строки с <SP> and <BR>
, поэтому я делаю это:
$line = str_replace(" ","<SP>",$line);
$line = str_replace("\n","<BR>",$line);
, но я получаю это:
Country:<SP>France <BR> <BR>City:<SP>Paris <BR> <BR>Street:<SP>Champ
Теперь, если Insted из \ п я попытался это:
$line = str_replace("\r","<BR>",$line);
я получаю аналогичный результат. Если я сделаю их, оба получат похожие результаты, которые, очевидно, имеют в нем несколько пробелов. Итак, я делаю это:
$line = str_replace(" ","",$line);
но он остается неизменным.
Мой весь код:
$line = str_replace(" ","<SP>",$line);
$line = str_replace("\n","<BR>",$line);
$line = str_replace(" ","",$line);
echo $line;
Как удалить пробелы в этом случае?
Редактировать: Я сделал bin2hex и узнал, что пространство на самом деле является каретой return \ r. Так что это решение:
$line = str_replace("\r","",$line);
Почему \ г ведут себя как пространство в этом случае?
Вы уверены, что ваша строка - одна длинная линия, или она действительно многострочная? Вы также можете иметь дело со специальными символами пробела, такими как неразрывное пространство. – BoltClock
попробуйте заменить ' ' на "". т.е. '$ line = str_replace (" "," ", $ line);' – Virendra
Используйте hexdump своей строки, чтобы действительно узнать, с какими символами вы имеете дело, см. [Как я могу получить шестнадцатеричный дамп строки в PHP?] (http://stackoverflow.com/questions/1057572/how-can-i-get-a-hex-dump-of-a-string-in-php) – hakre