PHP строка оборвалась - PullRequest
       48

PHP строка оборвалась

1 голос
/ 21 октября 2010

Почему этот код

$string = "!@#$%^&*(<a@g.com"; 
echo $string; 

только вывод:

!@#$%^&*(

Это ошибка PHP?

Ответы [ 4 ]

2 голосов
/ 21 октября 2010

Поскольку <является зарезервированным символом в HTML:) </p>

Используйте &lt; и &gt;

Прочтите это для получения дополнительной информации

http://www.w3schools.com/HTML/html_entities.asp

Вы можете использовать функцию htmlspecialchars для преобразования таких специальных символов

http://php.net/manual/en/function.htmlspecialchars.php

1 голос
/ 21 октября 2010

Если вы просматриваете вывод в веб-браузере, то < начинает тег и обычно не отображается, а интерпретируется в синтаксическом анализаторе структуры документа HTML.Кроме того, $ внутри строки в двойных кавычках интерполируется как имя переменной, которая следует за ней;попробуйте использовать одинарные кавычки там, где этого не произойдет.

Попробуйте это:

$string = '!@#$%^&*(<a@g.com';
echo htmlentities($string);
1 голос
/ 21 октября 2010

Вам нужно сделать:

echo htmlentities($string);

для отображения строки в браузере. Это связано с тем, что < в строке интерпретируется браузером как начало тега HTML.

Так что это не PHP, а браузер, который вызывает такое поведение. Если вы сделаете точно такое же отображение в командной строке, вы увидите все символы.

1 голос
/ 21 октября 2010

Я не вижу этого:

http://ideone.com/zhycx

Возможно, в вашем файле есть какие-то странные символы?Убедитесь, что вы также используете «нормальную» кодировку в исходном коде.

...