채택완료

이해가 안갑니다...

$str = $xpath->query('//script[contains(text(), "dog")]')->item(0)->nodeValue;
// echo $str;  //  이 부분의 결과는      dog 1234[cat          입니다.

$res = preg_replace('/^.+?\[/','',$str);  // [ 포함 앞 부분을 삭제함
// 그런데...
echo $res;    // 하면 결과가    그대로    dog 1234[cat  입니다. (삭제가 안됩니다.)


그런데 변수를 위의 결과값과 똑 같이 직접 아래와 같이 주고 ....
$str = "dog 1234[cat";
$res = preg_replace('/^.+?\[/','',$str);
echo $res;    // 하면 결과가    cat  입니다.

왜 결과가 다르게 나오나요? 

|

답변 3개

채택된 답변
+20 포인트
2015-03-18 (수) 17:13:11
$str = $xpath->query('//script[contains(text(), "dog")]')->item(0)->nodeValue;
이거...프론트 단에서 객체 선택하는 스크립트 인가요?^^;
이게 서버 단에서는 처리 되기 전 값이 출력되서 그런거 같아요~
2015-03-20 (금) 13:33:37

위 단계에서의 dog 1234[cat​값은 얼핏 보기에 문자열같아 보이지만 객체일 가능성이 놓습니다.

$str = (string)$str 로 한번 문자열로 돌리고 해보세요.

echo strstr('[', $str); 이렇게 하면 뭐가나오나요?

답변을 작성하려면 로그인이 필요합니다.