- Home
- Categorie
- Coding e Sistemistica
- Coding
- Ciclo con cUrl
-
Ciclo con cUrl
Buongiorno a tutti.
Sono nuovo del forum e anche del mondo PHP.Quello che devo fare è:
leggere un file csv/txt fatto in questo modo:id||url
1||miourl_1.html
2||miourl_2.htmle scrivere un altro file così:
id||codice html delle pagine
1||<html>codice url1</html>
2||<html>codice url2</html>ho usato lo script seguente:
<?php $myfile = fopen("sourcefile.txt", "r") or die("Unable to open file!"); $writefile = fopen("destinationfile.txt","w") or die("Unable to open file!"); do { $buffer = fgets($myfile); $part1 = explode("||", $buffer); $url = $part1[1]; $options = array( CURLOPT_RETURNTRANSFER => true, // return web page CURLOPT_HEADER => false, // don't return headers CURLOPT_FOLLOWLOCATION => true, // follow redirects CURLOPT_ENCODING => "", // handle compressed CURLOPT_USERAGENT => "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/22.0.1216.0 Safari/537.2", // who am i 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; fwrite($writefile, $part1[0] . "||" . preg_replace('~[[:cntrl:]]~', '', strip_tags($content,"<table><td><tr><b><strong>"))); } while (!feof($myfile)); fclose($writefile); fclose($myfile); ?>
Se non ciclo e passo una url alla volta funziona, se lo faccio ciclare sul file di origine non scrive niente ma non dà neanche errore.
Cosa sbaglio?Grazie a tutti.
Ste
-
Risolto, era da fare
$url = trim($url);
grazie lo stesso
ciao