2012-03-02 7 views
0

私はテキストボックスからURLのリストを取得しようとしていますが、1行に1つのURLがあり、各URLはリダイレクトします。リダイレクト先のURLを取得しようとしています。私は複数のURLのこれに上でそれを実行しようとすると、複数のURLを呼び出すとPHP cURLが機能しません。

私は、単一のURLに以下のコードを実行すると、それは私が欲しいものであるリダイレクトURLを返す...

function getRedirect($url){ 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_HEADER, true); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
    $result = curl_exec($ch); 
    $info = curl_getinfo($ch); //Some information on the fetch 
    curl_close($ch); 

    echo '<pre>'; 
    print_r($info); 
    echo '</pre>'; 

} 

$url = 'http://www.domain.com/go?a:aHR0cDovL2xldGl0Yml0Lm5ldC9kb3d'; 
getRedirect($url); 

は今私の問題がありますコード...私はURLの代わりに私に私の最初の例のようにリダイレクトURLを与えるの私のリスト上でそれを実行すると

if(isset($_POST['urls'])){ 
    $rawUrls = explode("\n", $_POST['urls']); 

    foreach ($rawUrls as $url) { 
     getRedirect($url); 
    } 
} 

が正しく、それは代わりに私がのcURLに渡されるURLを与えるん。

この問題を解決する理由または解決方法を教えてもらえますか?

+0

の値を変更していますか? VARダンプ@ben – Ben

+0

はちょうど私が '配列(10){ [0] => 文字列(117)「http://www.url.com/go?a:aHR0cDovL2xvc3RwaWMubmV0L2ltYWdlcy9lMDM1MzgxMjNiYWU0NGUzYjM1ODk3NjFlMWFkN2Y3Ny5qcGc=のように渡されたすべてのURLのことを示しています " [1] => 列(145) "http://www.url.com/go?a:aHR0cDovL3NoYXJlZmxhcmUubmV0L2Rvd25sb2FkLzgyNTYyLjhkZWQwYWQyY2U4NWEzMmJlN2E0MDZlNWY0YmYvQW44OGdlbDAzLndtdi5odG1s " [2] => ストリング(61)" HTTP://www.url .com/go?a:aHR0cDovL3VsLnRvL2s5Mjh5MHRu 「etc ... etc ...」 – JasonDavis

+0

ブラウザでURLの1つを試しても、リダイレクトされないので、URLリストが正しくない可能性があります。 ? – Ben

答えて

1

これはすでに質問のコメントに記載されていますが、問題はURLの最後に余分なスペースがあるようです。

getRedirect(trim($url))を呼び出すと修正されます。

末尾にスペースが最も可能性が高い(20%別名)クエリ文字列空間になって、クエリ文字列パラメータforeachループのショーの前に ``のvar_dump($ rawUrls)何

関連する問題