it-swarm.com.de

URL-Inhalt erhalten PHP

Ich möchte den Inhalt einer URL in eine Zeichenfolge einfügen und verarbeiten. Ich habe jedoch ein Problem.

Ich erhalte diesen Fehler:

Warning: file_get_contents(http://www.findchips.com/avail?part=74ls244) [function.file-get-contents]: failed to open stream: Redirection limit reached,

Ich habe gehört, dass dies auf Seitenschutz und Header, Cookies und so weiter zurückzuführen ist. Wie kann ich es überschreiben?

Ich habe auch Alternativen wie Freak und Fopen ausprobiert, aber ich glaube, ich weiß einfach nicht, wie ich das machen soll.

Kann mir bitte jemand helfen?

20
Amir Tugi

1) lokale einfachste Methoden

<?php
echo readfile("http://example.com/");   //needs "Allow_url_include" enable
//OR
echo include("http://example.com/");    //needs "Allow_url_include" enabled
//OR
echo file_get_contents("http://example.com/");
//OR
echo stream_get_contents(fopen('http://example.com/', "rb")); //you may use "r" instead of "rb"  //needs "Allow_url_fopen" enabled
?> 

2) Besserer Weg ist CURL :

echo get_remote_data('http://example.com/?myPage', 'var2=something&var3=blabla' ); // GET & POST request

Siehe Funktionscode hier . Es behandelt automatisch [~ # ~] Followlocation [~ # ~] Problem + Remote-URLs werden automatisch korrigiert! (src="./imageblabla.png" --------> src="http://example.com/path/imageblabla.png")


p.s.GNU/Linux-Benutzer benötigen möglicherweise php5-curl package.

34
T.Todua

Verwenden Sie cURL ,

Überprüfen Sie, ob Sie es über phpinfo(); haben

Und für den Code:

function getHtml($url, $post = null) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    if(!empty($post)) {
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    } 
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}
11
Ruel

Versuchen Sie es stattdessen mit cURL . cURL implementiert eine Cookie-JAR, file_get_contents nicht.

3
Roman