PHP의 간단한 HTML 돔 파서로 웹 페이지를 가져 오려고하고 있는데 이상한 문제가 있습니다. 두 문자열을 연결하여 url 변수를 정의합니다.간단한 html dom URL보다 다른 페이지를로드 중
$itemUrl="http://www.example.com/";
$pageUrl="default.asp?pg=DispSingleItem&ItemNumber=1234";
$itemUrl .=$pageUrl;
$html=file_get_html($itemUrl);
이 스크립트를 실행하면 "항목을 찾을 수 없음"이라는 페이지로 이동하게됩니다. 그러나 $ itemUrl을 반향 출력하고 복사하여 브라우저에 붙여 넣으면 직접 찾고있는 페이지로 이동합니다. 또한, 전체 URL을 한 문자열로 저장하여 시작하면 올바른 웹 페이지로 이동합니다.
$itemUrl="http://www.example.com/default.asp?pg=DispSingleItem&ItemNumber=1234";
$html=file_get_html($itemUrl);
연결 문자열에 urlencode를 사용해 보았습니다.하지만 도움이되지 않습니다. 나는 정말로 곤란하다. 같은 URL을 직접 복사하고 다른 변수에 붙여 넣으면 올바른 페이지로 연결되는 링크 된 URL이 다른 페이지로 연결되는 이유를 생각할 수 없습니다. 내가 여기서 무엇을 놓치고 있니? 어떤 도움이라도 좋을 것입니다. 고마워요.
편집 : 문제점을 발견했습니다. $ PAGEURL의 반향이 나타났다 :
default.asp?pg=DispSingleItem&ItemNumber=1234
실제로 변수는 다음과 같이 보이는 문자열을 저장했다 :
default.asp?pg=DispSingleItem&ItemNumber=1234
내 브라우저가 자동으로 & A를 번역했다; 단지 &으로, 나는 정확히 내가 필요로하는 것처럼 보였다. 하지만 file_get_html을 실행할 때마다 문자열이 변환되지 않았으므로 스크립트가 & amp 인 URL에서 가져 오려고했습니다. 뿐만 아니라 &. 나는 추가 :
는$pageUrl=preg_replace("/amp;/", "", $pageUrl);
는
는 사람이 정확히 변수가 무엇인지, 내 문제에 무슨 일이 있었는지처럼 변경하지 않고 출력 브라우저를 얻을 수있는 방법을 알고 있나요? 앞으로 알게되면 유용 할 것입니다.
모든 답변을 주셔서 감사합니다. 나는 그렇게 많이 또는 그렇게 빨리 기대하지 않고 있었다.
'file_get_html'은 무엇입니까? 'file_get_contents'와 같은가요? 또한 브라우저에서 페이지를 볼 때 어떤 쿠키를 보냅니 까? –
@arxanas'file_get_html '이 무엇이든,'michael tyler '가 설명하는 동작을 설명하지 않습니다. 두 경우 모두 동일한 URL이 전달됩니다 (최소한 제공된 코드에 따라). @'michael tyler' : 오류보고 기능이 켜져 있는지 확인하십시오. 내 직감은 원래 코드의 어딘가에있는 변수 이름에 오타가 있다는 것이지 여기에 제시 한 예가 아닙니다. – RobIII
@RobIII 보내진 쿠키 또는 다른 헤더가'file_get_html'의 사용으로 인해 발생할 수 있습니다. –