Función Curl() no trae datos - Php
Tengo una función creada para Php, donde extrae datos de determinada web. La función realiza el Logeo y la búsqueda de determinado producto por su código. Falla en la extracción de datos de la página, como por ej. Título, descripción, precio. Etc. Agradecería una guía el respecto, ya que desconozco el funcionamiento de este método.
if($login!="")
{
$file_txt = @fopen($file,"w");
for ($i=0; $i<count($codigos); $i++)
{
curl_setopt($ch, CURLOPT_URL, 'http://www.proveedor.com/others/IncoResults.jsp');
//curl_setopt($ch, CURLOPT_URL, 'http://www.proveedor.com/others/IncoResults.jsp?searchstr='.$codigos[$i]);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "cmdaction=search&searchstr=".$codigos[$i]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT, 0);
$quest = curl_exec($ch);
if($quest != "")
{
$html = stristr($quest, '<article>');
if($html != "")
continue;
$hasta = stripos($html, '</article>');
$articulo = substr($html,0,$hasta + 10);
if(strpos($articulo, "Disponible en stock") === FALSE)
{
$temp = stristr($articulo,'http://www.proveedor.com/contentimg');
//if($temp !== FALSE)
if($temp === FALSE)
{
$articulo = $temp;
$hasta = stripos($articulo,'"');
$linkFoto = substr($articulo, 0, $hasta);
}
else $linkFoto = "";
$articulo = stristr($articulo,'<a href="http://www.proveedor.com/');
$articulo = stristr($articulo,'href="');
$hasta = stripos($articulo,'" >');
$linkProd = substr($articulo, 6, $hasta - 6);
$articulo = stristr($articulo,'>');
$hasta = stripos($articulo,"</a>");
$titulo = mb_convert_encoding(substr($articulo, 1, $hasta - 1),'UTF-8');
$articulo = stristr($articulo, '<span>U$S ');
$hasta4 = stripos($articulo, '</span>');
$precio = substr($articulo,10,$hasta4-10);
$precio = str_replace(".","",$precio);
$precio = str_replace(",",".",$precio);
/*
$countSep = substr_count($precio,',');
$lastDec = strrpos($precio,",");
if($lastDec !== false)
$precio = substr($precio,0,$lastDec).'.'.substr($precio,$lastDec + 1);
$precio = str_replace(",","",$precio);
*/
curl_setopt($ch, CURLOPT_URL, $linkProd);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT, 0);
$bufferProd = curl_exec($ch);
$dom = new DOMDocument();
@$dom->loadHTML($bufferProd);
$xpath = new DOMXPath($dom);
$linksFotosDesc = "";
do
{
$bufferProdTemp = stristr($bufferProd, 'largeimage:');
if($bufferProdTemp !== FALSE)
$bufferProd = $bufferProdTemp;
else break;
$hasta = stripos($bufferProd, "'}");
$linksFotosDesc = $linksFotosDesc.substr($bufferProd,13,$hasta-13).";";
$bufferProd = stristr($bufferProd, "'}");
}
while(true);
$divDesc = $xpath->evaluate("//span[@class='description']");
$descripcion = $dom->saveHTML($divDesc->item(0));
$linkFabricante="";
$line = $codigos[$i].'::::'.$titulo.'::::'.$precio.'::::'.$descripcion.'::::'.$linkFabricante.'::::'.$linkFoto.'::::'.$linksFotosDesc.'::::';
$text = $text.$codigos[$i].'::::'.$titulo.'::::'.$precio.'::::'.$descripcion.'::::'.urlencode($linkFabricante).'::::'.urlencode($linkFoto).'::::'.urlencode($linksFotosDesc).'::::';
@fwrite($file_txt,$line.PHP_EOL);
ob_flush();
echo '<br>'.$line;
}
}
}
@fclose($file_txt);
}
curl_close($ch);
ob_end_flush();
//echo '<span style="display: none" id="hd">'.$text.'</span>';