2012-02-24 5 views
0

私のデータベースのURLがFacebookのページに到達しているか、 "www.facebook.com"にリダイレクトされているかどうかを確認したいと思います。FacebookのURLがリダイレクトされているかどうかを確認しますか?

これは私が使用するコードである:

<?php 
$conn = mysql_connect('localhost', 'user', 'pass'); 
mysql_select_db('database'); 
?> 

<?php 
$query = "SELECT data_txt FROM jos_sobi2_fields_data WHERE fieldid=8 "; 

$result = mysql_query($query); 

$row = mysql_fetch_array($result); 
$url = $row['data_txt']; 

$ch = curl_init(); 

curl_setopt($ch, CURLOPT_HEADER, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

foreach($row as $url) { 
    curl_setopt($ch, CURLOPT_URL, $url); 
    $out = curl_exec($ch); 

$out = str_replace("\r", "", $out); 

$headers_end = strpos($out, "\n\n"); 
if($headers_end !== false) { 
    $out = substr($out, 0, $headers_end); 
} 

$headers = explode("\n", $out); 
foreach($headers as $header) { 
    if(substr($header, 0, 10) == "Location: ") { 
     $target = substr($header, 10); 

     echo "[$url] redirects to [$target]<br>"; 
     continue 2; 
    } 
} 

echo "[$url] does not redirect<br>"; 
} 
?> 

結果はこれです:/:

[http://www.facebook.com/shanibakshi.grooming.dogtraining]は[HTTPにリダイレクト/www.facebook.com/common/browser.php]

[http://www.facebook.com/shanibakshi.grooming.dogtraining] [http://www.facebook.com/common/browser .php]

とこのurl - >http://www.facebook.com/common/browser.phpは、私のブラウザが古くなっていると言われるfacebookページです...おそらくコードの一部の機能のため.....

とにかく私のやりたいことは、自分のデータベースにあるURLがその場所にあるかどうかをチェックすることです任意のリダイレクトを伴う。

ありがとう:)

ronen。

答えて

0

あなたはリダイレクトを検出したいと言っていますが、問題は常に「false positives」だけを得るためにbrowser.phpにリダイレクトされているということですか?その場合は、おそらくUSERAGENTオプションを設定する必要があります。

curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 6.2; rv:9.0.1) Gecko/20100101 Firefox/9.0.1'); 
+0

GREAT !!あなたは天才です素晴らしい作品! – user1102152

関連する問題