Я по-прежнему относительно новичок в кодировании с PHP, хотя я знаком с несколькими другими языками, поэтому решил немного обмануть его.PHP переменные не равны
В основном я играю с регулярным выражением и веб-соскабливанием, и я работаю над скриптом для анализа некоторой информации с сайта. Я получаю информацию в порядке, но когда я пытаюсь сравнить значения в одном из своих массивов с строкой, она не приближается, даже если значения показывают одинаковые и представляют собой один и тот же тип данных. Вот пример того, с чем я работаю.
Здесь я просто пытаюсь получить мои значения по сравнению с извлечением набора значений с сайта, а затем перемещением их в 1-й массив. Предполагая, что значение массива [0] = «Значение», оно должно быть равно $ str. Я проверил с gettype(), и оба $ tmp и $ str являются строками, но они не регистрируются как равные. Я также пробовал с current() значениями в моем массиве (что было бы лучше для моих целей), но это то же самое.
Что мне действительно нужно сделать, это найти значение в моем массиве и сравнить его с $ str. Если он совпадает, мне нужно установить переменную в предыдущее значение в массиве.
$html = file_get_contents("http://www.site.com");
$str = "Value";
preg_match_all ('/<td class=\"name\">(.*?)<\/td>/s', $html, $return, PREG_PATTERN_ORDER);
for ($ii = 0; $ii < count($return[0]); $ii++) {
$array[$ii] = $return[0][$ii];
}
$tmp = $array[0];
if ($tmp == $str) {
echo "yes";
}
вы можете попробовать trimmimg $ tmp trim ($ tmp) - там могут быть символы новой строки там ... могут также быть вещи, которые htmlentitied (попробуйте rightclick> посмотреть источник и посмотреть на $ tmp vs. $ str) –
Не следует ли это делать в цикле? И что вы подразумеваете под «Мне нужно установить переменную в предыдущее значение в массиве»? – Nabab
добавить 'echo '' $ tmp '==' $ str '"; 'above' if ($ tmp == $ str) {'посмотреть, что сравнивается, и есть какое-либо ведущее/конечное пространство – xzyfer