Я очищаю DOM статического сайта с помощью PHP и вытаскивая данные определенного бита, чтобы я мог поместить материал в базу данных.
В этом примере я сохраняю внутренний HTML элемента в $domString
, я вижу, что строка – это «Описание», но когда я сравниваю $domString
с «Описание» в коде, нет совпадения.
if($domString == 'Description') { // This is not happening, even though I know // $domString contains 'Description' :( }
У меня полосатые пробелы и прочее, когда я var_dump()
их обоих, я получаю это:
string(45) "Description" string(11) "Description"
Выполняя их как через bin2hex()
так и с помощью bin2hex()
Álvaro G. Vicario предлагает следующие два значения:
3c74642076616c69676e3d22746f702220636f6c7370616e3d2232223e4465736372697074696f6e3c2f74643e 4465736372697074696f6e
Мне нужен способ раздеться. Wahtever усиливает первую строку.
Число в скобках – это общее количество байтов. Очевидно, что 45-байтовая строка не может быть идентична 11-байтовой.
Вы можете использовать bin2hex () для проверки точных байтов. Я также предлагаю вам не видеть результат как HTML. В большинстве браузеров вы можете нажать Ctrl + U.
Изменить: спрашивать, почему две заданные строки визуализировать одни и те же слова после обработки веб-браузером, лучше отвечать, фактически просматривая настоящие необработанные данные (в отличие от просто просмотра результатов, созданных браузером).
Редактировать # 2:
var_dump( hex2bin('3c74642077696474683d223832222076616c69676e3d22746f70223e547970653c2f74643e') );
… печатает это:
string(37) "<td width="82" valign="top">Type</td>"
Вы хотите лишить HTML-теги или что-то еще? Вы видели необработанный HTML?
Вы должны задать вопрос, почему это происходит
string(45) "Description" string(11) "Description"
Второй – 11 символов, первый – 45! Зачем? Таким образом, есть некоторые скрытые (не показаны) символы \ символы. Вот почему эти строки не равны.
Попробуйте удалить один из управляющих символов из php String