2010-02-08 4 views
1

두 개의 URL이 같은 페이지로 연결되는지 알기 위해 작은 스크립트를 작성하고 싶습니다. 예 : http://google.comhttp://google.com/#은 동일한 URL로 연결됩니다. 또한 때로는 http://URL1.comhttp://URL2.com도 같은 URL이 아니지만 동일한 페이지로 연결됩니다.두 URL이 같은 페이지로 연결되는지 알아 보는 방법

쉬운 방법이 있나요?

좀 더 자세한 정보가 필요하면 말해 그리고 난 후

참고 편집하겠습니다 :이 그래서 당신이 할 수있는만큼 도움이 될하시기 바랍니다 숙제 질문이 아닙니다.

감사합니다.

+2

음 ... 우리에게 그것을 말하는 것은 ** 아닙니다 ** 숙제 문제는 저를 믿기 위해 인도하고 있습니다 ** ** ** ** ** ** ** 모든 원인을 가진 방어적인 ... –

+1

만약 당신이 저의 게시물 당신은 내가 숙제 질문으로 숙제 질문 표시하고 그들이 내가 그렇게 말할 수 없다는 것을 이해할 것입니다. :) 그렇다면, 어쨌든 당신의 코멘트를 주셔서 감사합니다. – user220755

답변

4

이 정말 더러운 방법입니다,하지만 만약 당신이 원하는 가정 : 페이지가 같은 시간과 같은 작은 변화가있는 경우

if(file_get_contents('http://URL1.com') === file_get_contents('http://URL2.com')) { 
    // Leading to the same page! 
} 

참고가 작동하지 않습니다 (즉, 요청이 정확하게 사이에 만들어 13:45:59 및 13:46:00), 쿠키 또는 동적 인 모든 것.

+2

이것이 실패 할 수있는 모든 방법을 열거해야합니까? –

+3

아니요 ... 질문 자체가 실제로 신뢰할 수있게 해결 될 수 없기 때문에 ... –

+0

LiraNuna, 전체적으로는 작동하지 않지만 질문에 답변 해 주셔서 대단히 감사합니다. Chacha102, LiraNuna가 대답을 제공하려고 시도했는데 정말 감사드립니다. 난 그게 어려운 문제를 찾을 수 있기 때문에 나는 stackoverflow에서 사람들이 여기에 어쨌든 당신의 공헌 덕분에 몇 가지 아이디어를 볼 줄 알았는데 질문을 물었다. :) – user220755

0

parse_url()을 사용하면 간단한 경우를 처리 할 수 ​​있습니다. 리디렉션을 감지하려면 HTTP facilities 부분 중 하나를 사용하여 헤더를 가져와 Location 헤더를 감지해야합니다. 그래서

2

...

를 감지 할 '진짜'방법이 없기 때문에 이것은 매우 까다로운 일이 될 수 있습니다. 위치 헤더를 감지하여 리디렉션이 있는지 확인할 수 있지만 일부 사람들은 내부 리디렉션을 수행하기 때문에 완벽하지는 않습니다. (의미, stackoverflow.com은 stackoverflow2.com 같은 보인다.)

내가 생각할 수있는 유일한 방법은 페이지의 내용을 확인하는 것입니다 : AKA

$c = curl_init(); 
curl_setopt($c, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($c, CURLOPT_URL, 'http://localhost/admin/'); 
$content1 = curl_exec($c); 
curl_close($c); 

$c = curl_init(); 
curl_setopt($c, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($c, CURLOPT_URL, 'http://localhost/admin/'); 
$content2 = curl_exec($c); 
curl_close($c); 

if($content1 == $content2) 
{ 
    // same content 
} 

을 당신이 만약 콘텐츠 길이 (Content-Length) 또는 다른 것만 확인하도록 단축 할 수는 있지만 헤더에서 간단히 알 수는 없습니다.

관련 문제