Сравнение строк PHP не будет похоже на кажущуюся идентичную строку

Я очищаю 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