저는 PHP로 코딩하기가 비교적 쉽습니다. 몇 가지 다른 언어에 익숙해 졌기 때문에 조금 바보짓을하기로했습니다.PHP 변수가 같지 않음
기본적으로 저는 정규 표현식과 웹 스크래핑으로 놀았으며 스크립트를 사용하여 사이트의 일부 정보를 구문 분석합니다. 정보를 잘 얻고 있지만 배열 중 하나의 값을 문자열과 비교하려고하면 값이 동일하고 동일한 데이터 형식 임에도 불구하고 동등하지 않습니다. 여기 내가 함께 일하는 것을 보여주는 예가있다.
여기 사이트에서 값 집합을 검색 한 다음 1 차원 배열로 이동하여 값을 비교하려고합니다. array [0] = "Value"의 값을 가정하면 $ 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 대 $ str보기) –
루프에서 완료해야합니까? 그리고 "배열에서 이전 값으로 변수를 설정해야합니다"라는 의미는 무엇입니까? – Nabab
비교할 내용과 앞뒤 공백이 있는지 보려면'$ tmp '=='$ str ' ";'if ($ tmp == $ str) {'를 추가하십시오. – xzyfer