sunra simple parser php foreach simple-html-dom

php - sunra - Error de retorno de HTML simple parser 500



php simple html dom parser download (4)

Consulte http://php.net/manual/en/function.file-get-contents.php sección de Notas.

Por favor revise la configuración de su servidor para "fopen wrappers"

Probé lo siguiente

<?php include(''simple_html_dom.php''); $result= Array ( ''Avenya Group AG'' => Array ( ''link'' => ''CHE-218.938.800'', ''href'' => ''http://zh.powernet.ch/webservices/inet/HRG/HRG.asmx/getHRGHTML?chnr=0203038402&amt=020&toBeModified=0&validOnly=0&lang=1&sort=0'' ) ); foreach($result as $key => $value) { $xmlFind = file_get_html($value[''href'']); foreach($xmlFind->find(''a'') as $a) { echo ''<p>''.$a->href.''</p>''; } }

Y tengo esto

# http://www.shab.ch/shabforms/servlet/Search?EID=7&DOCID=6890948 http://www.shab.ch/shabforms/servlet/Search?EID=7&DOCID=981331 http://zh.powernet.ch/webservices/inet/hrg/hrg.asmx/getExcerpt?Chnr=CH-020.3.038.402-5&Amt=20&Lang=1 mailto:[email protected]

Estoy usando la biblioteca simple_html_dom.php de este ejemplo

http://nimishprabhu.com/top-10-best-usage-examples-php-simple-html-dom-parser.html

Pero tengo el error 500 dentro de la clase, cuando escribo url en el navegador, ¿funciona bien?

Tengo algunas vagas en matriz como esta

$result= Array ( [Avenya Group AG] => Array ( [link] => CHE-218.938.800 [href] => http://zh.powernet.ch/webservices/inet/HRG/HRG.asmx/getHRGHTML?chnr=0203038402&amt=020&toBeModified=0&validOnly=0&lang=1&sort=0 ) )

Cuando intento algo como esto

foreach($result as $key => $value) { $xmlFind = file_get_html($value[''href'']); foreach($xmlFind->find(''a'') as $a) { echo ''<p>''.$a->href.''</p>''; } }

Me equivoque

Se encontró un error de PHP Gravedad: Mensaje de advertencia: file_get_contents ( http://zh.powernet.ch/webservices/inet/HRG/HRG.asmx/getHRGHTML?chnr=0203038402&amt=020&toBeModified=0&validOnly=0&lang=1&sort=0 ) para abrir la secuencia: la solicitud HTTP falló! HTTP / 1.1 500 Internal Server Error Nombre del archivo: bibliotecas / Simple_html_dom.php Número de línea: 76

Pero cuando lo intento manualmente así

$xmlFind = file_get_html(''http://zh.powernet.ch/webservices/inet/HRG/HRG.asmx/getHRGHTML?chnr=0203038402&amt=020&toBeModified=0&validOnly=0&lang=1&sort=0'');

El resultado está ahí, también si escribo esa dirección url i browser todo está bien, ¿el único problema que tengo es cuando intento hacer un bucle en una matriz?


Proxy podría ser un problema. Use el proxy apropiado.

// Create a stream $opts = array( ''http''=>array( ''method''=>"GET", ''header''=>"Accept-language: en/r/n" . "Cookie: foo=bar/r/n", ''proxy'' => ''tcp://221.176.14.72:80'', ) ); $context = stream_context_create($opts); // Open the file using the HTTP headers set above $file = file_get_contents(''http://ifconfig.me/ip'', false, $context); var_dump($file);


Prueba esto,

<?php $result= Array ( ''Avenya Group AG'' => Array ( ''link'' => ''CHE-218.938.800'', ''href'' => ''http://zh.powernet.ch/webservices/inet/HRG/HRG.asmx/getHRGHTML?chnr=0203038402&amt=020&toBeModified=0&validOnly=0&lang=1&sort=0'' ) ); foreach($result as $arr_item){ if(is_array($arr_item)) { if(isset($arr_item[''href''])) { echo file_get_contents($arr_item[''href'']); } } } ?>

Después de ejecutar el código anterior, obtuve esta respuesta como se muestra en la imagen adjunta.

Si aún recibe un error de advertencia, puede usar la curvatura para enviar una solicitud de obtención. así que en lugar de echo file_get_contents($arr_item[''href'']); encima

Reemplácelo con el siguiente código.

$ch = curl_init($arr_item[''href'']); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_TIMEOUT, 60); $result = curl_exec($ch); echo $result; curl_close($ch);


Este mensaje es devuelto por el servidor remoto. Muestra que el servidor podría no estar disponible en este momento.

Creo que esto puede deberse a una cantidad demasiado importante de recursos necesarios para ejecutar las diferentes solicitudes que realizó dentro de su bucle. También se puede vincular a alguna protección de denegación de servicio.

Después de alcanzar el número máximo de conexiones autorizadas, devuelve "HTTP 500 Server Too Busy".

Consulte: https://www.iis.net/configreference/system.webserver/asp/limits

El atributo requestQueueMax especifica el número máximo de solicitudes ASP simultáneas que se permiten en la cola. A cualquier navegador cliente que intente solicitar archivos ASP cuando la cola está llena se le envía un error HTTP 500 Server Too Busy.

Puede intentar retrasar cada una de sus llamadas a la URL con un sleep() si no tiene límite de tiempo.

Lo mejor que puede hacer es ponerse en contacto con el propietario / administrador del sistema del servicio web remoto para informarle sobre el problema y así poder investigar.

Dependiendo de lo que esté haciendo en su script, también puede ignorar el mensaje de error y continuar con la siguiente llamada:

foreach($result as $key => $value) { // added @ to ignore the error $xmlFind = @file_get_html($value[''href'']); // continue to the next result if (!$xmlFind) continue; foreach($xmlFind->find(''a'') as $a) { echo ''<p>''.$a->href.''</p>''; } }