0

PHP で動的アドレス (つまり、POST 変数を介して設定) を使用して cURL を使用しようとしましたが、機能しません!

<?php
$address = $_POST['address'];

//echo $address;
//$address = "http://twitter.com";

$curl_handle=curl_init();
curl_setopt($curl_handle,CURLOPT_URL, $address);
curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,2);
curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,1);
$buffer = curl_exec($curl_handle);
curl_close($curl_handle);

if (empty($buffer)) {
    echo "Sorry, ".$address." are a bunch of poopy-heads.<p>";
}
else {
    echo $buffer;
}
?>

$address 変数をエコーし​​、送信した $address の内容を確認できるため、POST が機能していることはわかっています。

4

2 に答える 2

0

さて、動作していることがわかっ$_POSTたので、cURL を見てみましょう。

私が普段使っている機能です。多分あなたはそれを試してみることができますか?

コード :

function getCurl(
                $url,
                $returntransfer=1, $httpproxytunnel=1, $referer=null,
                $useragent=null, $header=null, $httpheader=null,
                $proxy=null, $port=null
                )
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, $returntransfer);
    curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, $httpproxytunnel);

    if ($referer!=null)
        curl_setopt($ch, CURLOPT_REFERER, $referer);
    if ($useragent!=null)
        curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
    if ($header!=null)
        curl_setopt($ch, CURLOPT_HEADER, $header);
    if ($httpheader!=null)
        curl_setopt($ch, CURLOPT_HTTPHEADER, $httpheader);
    if ($proxy!=null)
        curl_setopt($ch, CURLOPT_PROXY, $proxy);
    if ($port!=null)
        curl_setopt($ch, CURLOPT_PORT, $port);

    curl_setopt($ch, CURLOPT_TIMEOUT, 40);

    $result['DATA'] = curl_exec($ch);
    $result['INFO'] = curl_getinfo($ch);
    $result['ERROR'] = curl_error($ch); 

    return $result;
}

function getFile($url)
{
    $data = getCurl($url);

    return $data['DATA'];
}

そして、次のように使用します:

<?php
     $fileContents = getFile("http://www.somedomain.com/a-path-to-your-file.html");
     echo $fileContents;
?>
于 2012-04-07T14:10:54.653 に答える
0

$address 変数の値にスペースが含まれる入力サニテーションの問題がありました。

于 2013-09-28T22:39:48.697 に答える