Если вы используете последнюю библиотеку NaturePHP для PHP 5.3+ и у вас установлен cURL, это должно дать вам огромный импульс:
<?php
include('nphp/init.php');
function pegaPalavras()
{
return file('testfile.txt');
}
//Pega palavras do site: www.dicsin.com.br
pegarSinonimos("http://www.dicsin.com.br/content/dicsin_lista.php");
function pegarSinonimos($url)
{
$dictionary = pegaPalavras();
$files = array();
$con = mysql_connect("localhost","root","blablabla"); //omg! a root pwd :O
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("palavras2", $con);
foreach($dictionary as $palavra)
{
$files[] = $url . "?f_pesq=" . $palavra;// . "&pagina=" . $pagina;
}
//Http::multi_getcontents on NaturePHP makes use of curl_multi for parallel processing and
//fires callbacks asap, first come first serve style
//it should, however, take a lot on CPU and bandwith while processing
Http::multi_getcontents(
//uris
$files,
//process callback
function($url, $content){
list(, $word) = explode('=', $content);
$dom = new DOMDocument();
$dom->loadHTML($content);
$xpath = new DOMXPath($dom);
$tags = $xpath->query('//div[@class="palavras_encontradas"]/div[@class="box_palavras_encontradas"]');
//you create one table per word
$sql = "CREATE TABLE $palavra(sinonimo varchar(29))";
mysql_query($sql,$con);
//if something was found
if(count($tags)>0){
//get an array with synonyms
$synonyms=array();
foreach ($tags as $tag)
{
$synonyms[] = utf8_decode($tag->nodeValue);
}
//you can use str_replace on arrays, it's faster
$synonyms = str_replace("visualizar palavras", "", $synonyms);
$synonyms = str_replace("(Sinônimo) ", "", $synonyms);
//a single insert query with all values is much faster
$values = "('" . implode("'), ('", $synonyms) . "')";
mysql_query("INSERT INTO $palavra (sinonimo) VALUES $values");
}
});
mysql_close($con);
}
?>
На самом деле код здесь не проверялся, так что могут быть ошибки mionor, но вы получите общую концепцию;)
Если у вас нет php 5.3+, вы можете взглянуть на исходный код на NaturePHP о том, как использовать curl_multi.
PS: возможно, вы захотите изменить свой корневой пароль: x