2012-04-07 6 views
0

Ich habe versucht, cURL in PHP mit einer dynamischen Adresse zu verwenden (d. H. Über eine POST-Variable eingestellt), aber es funktioniert nicht!CURL-Adresse über POST-Variable setzen

<?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; 
} 
?> 

Ich weiß, dass die POST funktioniert, weil ich die $ Adreßvariable Echo und den Inhalt von $ Adresse sehen, die ich geschickt.

+0

Also welche Fehler oder Probleme haben Sie? Nicht funktioniert ist nicht gut genug –

+0

überprüfen Sie Ihre '$ _POST ['Adresse']' – Michelle

+0

die $ _POST ['Adresse'] funktioniert gut, siehe die untere Zeile meiner Frage. –

Antwort

0

Es gab eine Eingang Hygiene Problem, in dem ein Raum in dem $ Adresse Variablenwert war.

0

OK, jetzt, da Sie wissen $_POST funktioniert, schauen wir uns Ihren cURL an.

Dies ist die Funktion, die ich normalerweise verwende. Vielleicht können Sie es versuchen?

Code:

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']; 
} 

Und es wie folgt verwenden:

<?php 
    $fileContents = getFile("http://www.somedomain.com/a-path-to-your-file.html"); 
    echo $fileContents; 
?> 
+0

Also warum alle zusätzlichen Optionen hinzufügen, wenn Sie nicht em verwenden? –

+0

@LawrenceCherone Da muss ich manchmal vielleicht ... ;-) –

+0

Hmm ... ich habe versucht $ fileContents = getFile ($ address); echo $ fileContents; und es funktioniert immer noch nicht. –

Verwandte Themen