Beim Versuch, Seiteninhalte mit cURL zu extrahieren, können Probleme mit Umleitungen oder „Seite verschoben“-Fehler auftreten, insbesondere wenn die Die Abfragezeichenfolge enthält Sonderzeichen.
Um dieses Problem zu beheben, müssen Sie sicherstellen, dass die codierte Abfragezeichenfolge korrekt verarbeitet wird. Hier ist ein verbesserter Codeausschnitt, der dieses Problem behebt:
<code class="php">/** * Function to retrieve a web page using cURL. */ function get_web_page(string $url): array { $user_agent = 'Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0'; $options = [ CURLOPT_CUSTOMREQUEST => "GET", // Set request type as GET CURLOPT_POST => false, // Set to GET CURLOPT_USERAGENT => $user_agent, // Set user agent CURLOPT_COOKIEFILE => "cookie.txt", // Set cookie file CURLOPT_COOKIEJAR => "cookie.txt", // Set cookie jar CURLOPT_RETURNTRANSFER => true, // Return web page CURLOPT_HEADER => false, // Don't return headers CURLOPT_FOLLOWLOCATION => true, // Follow redirects CURLOPT_ENCODING => "", // Handle all encodings CURLOPT_AUTOREFERER => true, // Set referer on redirect CURLOPT_CONNECTTIMEOUT => 120, // Timeout on connect CURLOPT_TIMEOUT => 120, // Timeout on response CURLOPT_MAXREDIRS => 10, // Stop after 10 redirects ]; $ch = curl_init($url); curl_setopt_array($ch, $options); $content = curl_exec($ch); $err = curl_errno($ch); $errmsg = curl_error($ch); $header = curl_getinfo($ch); curl_close($ch); $header['errno'] = $err; $header['errmsg'] = $errmsg; $header['content'] = $content; return $header; } // Example of using the function to get a web page: $result = get_web_page('https://www.example.com/page'); if ($result['errno'] != 0) { // Handle error: bad url, timeout, redirect loop } if ($result['http_code'] != 200) { // Handle error: no page, no permissions, no service } $page = $result['content'];</code>
Durch die Einbindung dieser zusätzlichen Optionen, wie z. B. das Festlegen des Anforderungstyps auf GET, die Bereitstellung eines Benutzeragenten und die Handhabung aller Codierungen, sollten Sie in der Lage sein, erfolgreich zu sein Rufen Sie den Inhalt der gewünschten Webseite ab.
Das obige ist der detaillierte Inhalt vonWie kann ich Seiteninhalte mit cURL effektiv abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!