Come posso get il text da un sito web usando PHP?

Quindi, sto lavorando a uno script PHP, e parte di esso deve essere in grado di interrogare un sito Web, quindi get il text da esso.

Prima di tutto, devo essere in grado di interrogare un determinato URL del sito Web, quindi devo essere in grado di get del text dal text da quel sito Web dopo la query, ed essere in grado di restituire quel text fuori dalla function.

Come posso interrogare il sito Web e get il text da esso?

La via più facile:

file_get_contents ()

Questo ti porterà la fonte della pagina web.

Probabilmente vorrai qualcosa di un po 'più completo, quindi cerca in cURL , per una migliore gestione degli errori e impostando user-agent, e cosa no.

Da lì, se vuoi solo il text, dovrai analizzare la pagina. Per questo, vedi: Come analizzi e processi HTML / XML in PHP?

Vorrei fare una ricerca dom, date un'occhiata a http://www.php.net/manual/es/domdocument.load.php Domxpath potrebbe essere anche molto utile: http://php.net/manual/en/class .domxpath.php

$doc = new DOMDocument; $doc->load("http://mysite.com"); $xpath = new DOMXpath($doc); $elements = $xpath->query("*/div[@id='yourTagIdHere']"); 

Puoi usare file_get_contents o se hai bisogno di un po 'più di controllo (ad esempio per submit richieste POST, per impostare la string user-agent, …) potresti voler dare un'occhiata a cURL .

file_get_contents Esempio:

 $content = file_get_contents('http://www.example.org'); 

Esempio di cURL di base:

 $ch = curl_init('http://www.example.org'); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7) AppleWebKit/534.48.3 (KHTML, like Gecko) Version/5.1 Safari/534.48.3'); $content = curl_exec($ch); curl_close($ch); 

Se hai installato Curl, usalo. Altrimenti:

 $website = file_get_contents('http://google.com'); 

Quindi devi cercare nella string il text che desideri. Il modo in cui lo fai dipende dal sito web e dal text che stai cercando di leggere.

devi usare CURL. Puoi prendere alcuni campioni qui

Se vuoi più controllo, usa cURL. Altrimenti: file_get_contents ..

 $url = "http://www.example.com/test.php"; // Site URL. $site = file_get_contents($url); // Gets site response. 

Questo può essere ottenuto recuperando tutto il contenuto dalla pagina Web utilizzando i methods già elencati sopra, e quindi usando espressioni regolari per rimuovere tutti i caratteri tra parentesi aperte e chiuse?

Una pagina simile a questa:

 <html><style> h1 { font-style:... }</style><h1>stuff in here</h1></html> 

Sarebbe quindi diventato questo dopo la regex :

 h1 { font-style:... }stuff in here 

E poiché vogliamo rimuovere tutto il codice tra vari tag come il tag [style], potremmo quindi utilizzare la regex per rimuovere tutti i caratteri tra [style e / style] in modo tale che ci restino solo:

 stuff in here 

Funzionerebbe allora? Per favore rispondi se pensi che sarebbe o se prevedi errori come vorrei creare uno strumento con questo parsing.