2017-02-05 12 views
0

curlを実行して、必要に応じてすべてのパラメータを渡す直前に最終的なURLを知りたい。それを見る方法。投稿する前に最後のURLを表示するにはcurl php

<?PHP 
function openurl($url) { 
    $ch=curl_init(); 
    curl_setopt($ch,CURLOPT_URL,$url); 
    curl_setopt($ch, CURLOPT_POST, TRUE); 
    curl_setopt($ch,CURLOPT_POSTFIELDS,$postvars); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch,CURLOPT_TIMEOUT, '3'); 
    $content = trim(curl_exec($ch)); 
    curl_close($ch); 
    echo $content; 
} 
$postvars = array('user' => "user123",'password' => "[email protected]!123",'Text' => "Test"); 
$sms_url ="http://remoteserver/plain"; 
openurl($sms_url); 
?> 

desired output to check all params and its values passing correct.. 
http://remoteserver/plain?user=user123&[email protected]!123&Text=TESThere 
+0

Erm、あなたはその配列で何もしていません...あなたはそれを設定しました。 – walther

+0

例では、$ sms_urlはドメインだけで、params($ postvars)を追加しませんでした。 urlをチェックしたい場合は、まずそれを完了させてください。 – Roger

答えて

0

あなたはあなたの関数へのパラメータとして$postvarsを追加するのを忘れ。

function openurl($url, $postvars) { 
    $ch=curl_init(); 
    curl_setopt($ch,CURLOPT_URL,$url); 
    curl_setopt($ch, CURLOPT_POST, TRUE); 
    curl_setopt($ch,CURLOPT_POSTFIELDS,$postvars); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch,CURLOPT_TIMEOUT, '3'); 
    $content = trim(curl_exec($ch)); 
    curl_close($ch); 
    echo $content; 
} 

$postvars = array('user' => "user123",'password' => "[email protected]!123",'Text' => "Test"); 
$sms_url ="http://remoteserver/plain"; 

// create a test var which we can display on screen/log 
$test_url = sms_url . http_build_query($postvars); 

// either send it to the browser 
echo $test_url; 

// or send it to your log (make sure loggin is enabled!) 
error_log("CURL URL: $test_url", 0); 

openurl($sms_url, $postvars); 
+0

ありがとう、ロジャー!これは私が持っている最も近い可能な解決策ですが、http_build_query()が望むように動作しないことがあることがあります。 – Niru

関連する問題