테스트 사이트 - 개발 중인 베타 버전입니다

이해가 안갑니다... 채택완료

ttmin 10년 전 조회 2,165
$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 포인트
$str = $xpath->query('//script[contains(text(), "dog")]')->item(0)->nodeValue; 이거...프론트 단에서 객체 선택하는 스크립트 인가요?^^; 이게 서버 단에서는 처리 되기 전 값이 출력되서 그런거 같아요~
로그인 후 평가할 수 있습니다

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

10년 전

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

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

 

로그인 후 평가할 수 있습니다

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

10년 전
echo strstr('[', $str); 이렇게 하면 뭐가나오나요?
로그인 후 평가할 수 있습니다

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

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

로그인