2011-07-18 23 views
9

Por lo tanto, estoy trabajando en un script PHP, y parte de él necesita poder consultar un sitio web, y luego obtener texto de él.¿Cómo obtengo el texto de un sitio web usando PHP?

Primero, necesito poder consultar una cierta URL de sitio web, luego necesito poder obtener texto del texto de ese sitio web después de la consulta, y poder devolver ese texto fuera de la función.

¿Cómo consultaría el sitio web y obtendría el texto del mismo?

Respuesta

9

La forma más sencilla:

file_get_contents()

que les permite conocer la fuente de la página web.

Es probable que desee algo más completo, así que busque en cURL, para un mejor manejo de errores, y configure user-agent, y lo que no.

Desde allí, si solo quiere el texto, tendrá que analizar la página. Para ello, ve: How do you parse and process HTML/XML in PHP?

0

Puede utilizar file_get_contents o si necesita un poco más de control (es decir, a presentar peticiones POST, para establecer la cadena de agente de usuario, ...) es posible que desee ver en cURL.

file_get_contents Ejemplo:

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

básico cURL Ejemplo:

$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); 
0

Si ha instalado Curl, lo utilizan. De lo contrario:

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

Luego debe buscar a través de la cadena el texto que desea. Cómo lo hace depende del sitio web y del texto que intenta leer.

0

necesita usar CURL. Puede obtener algunas muestras here

0

Si desea obtener más control, utilice cURL. De lo contrario: file_get_contents ..

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

se puede hacer esto haciendo que todo el contenido de la la página web que utiliza los métodos ya mencionados anteriormente, y luego usa regex a elimina todos los caracteres entre los soportes abiertos y cerrados?

Una página que tiene este aspecto:

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

se convertiría entonces en este después de expresiones regulares:

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

Y porque queremos eliminar todo el código entre varias etiquetas tales como la etiqueta [style], podríamos usar primero regex para eliminar todos los caracteres entre [estilo y/estilo] para que nos quede:

stuff in here 

¿Funcionaría entonces? Responda si cree que lo haría o si prevé errores, ya que me gustaría crear una herramienta con este análisis sintáctico.

Cuestiones relacionadas