mam skrypt, który pobiera mi stronę google, sprawdzając na którym miejscu znajduje się dana strona podczas wyszukiwania danej frazy/słowa. póki co tych stron jest z dziesięć, każda po około dziesięć słów kluczowych. poniższy skrypt działa nieźle dla pierwszych pięciu stron i wszystkich ich słów kluczowych. podobnie ma się sytuacja dla drugiej piątki stron. natomiast jeśli przychodzi sprawdzić wszystkie strony naraz (niestety tak musi być ponieważ docelowo ma to robić cron w nocy, jednokrotnym wykonaniem pliku), wszystko trwa w nieskończoność... cie mam pojęcia co się dzieje i czemu tyle to trwa...
chyba ma w tym udział każdorazowe dwukrotne wywołanie preg_match_all, ale nie jestem pewny.
liczę na pomoc, mi już ręce opadają...

  1. <?
  2.  
  3. $r = mysql_query("SELECT * FROM pozycjonowanie") or die(mysql_error());
  4. while($pz = mysql_fetch_array($r))
  5. {
  6. $przec = array(', ', ' ,');
  7. $pz['kluczowe'] = str_replace($przec, ',', $pz['kluczowe']);
  8. $pieces = explode(",", $pz['kluczowe']);
  9. foreach($pieces as $v)
  10. {
  11. $tablica = rekordy($v, $pz['www']);
  12. $tablica['pozycja'] = ($tablica['pozycja']==100) ? 0 : $tablica['pozycja'];
  13. $zap = mysql_query("INSERT INTO pozycjonowanie_log (pos_id, slowo, pr, google, wp, onet, data, google_n, wp_n, onet_n) VALUES (
  14. "".mysql_escape_string($pz['id'])."",
  15. "".mysql_escape_string($v)."",
  16. "".mysql_escape_string($tablica['PR'])."",
  17. "".mysql_escape_string($tablica['pozycja'])."",
  18. "",
  19. "",
  20. "".time()."",
  21. "".mysql_escape_string($tablica['ile'])."",
  22. "",
  23. ""
  24. )") or die(mysql_error());
  25. }
  26. }
  27.  
  28.  
  29. function rekordy ($word,$www){
  30.  
  31.  $plik  = '';
  32.  $howFar = 100;
  33.  $adress = "http://www.google.pl/search?hl=pl&q=".urlencode($word)."&num=".$howFar."&btnG=Szukaj+w+Google&lr=lang_pl";
  34.  
  35.  dane($adress, $plik);
  36.  
  37.  preg_match_all("#<a class=l href="(.*)">#U", $plik, $tablica);
  38.  preg_match_all("#<b>([0-9,]*)</b> dla zapytania#si", $plik, $tablica2);
  39.  
  40.  $ile = count($tablica[1]);
  41.  $x = 0;
  42.  
  43.  for($i=0;$i<$ile;$i++){
  44. $x++;
  45. $tabl['fraza']  = $word;
  46. $tabl['pozycja'] = $x;
  47. $tabl['www']  = $www;
  48. $tabl['ile']  = $tablica2[1][0];
  49. $tabl['adres']  = $adress;
  50. $tabl['PR'] = $PR;
  51.  
  52. if(eregi($www,$tablica[1][$i])){
  53.  //print("<b>$x. ".$tablica[1][$i]."</b><br />");
  54.  break;
  55. }else{
  56.  //print("$x. ".$tablica[1][$i]."<br />");
  57. }
  58.  }
  59.  return $tabl;
  60. }
  61. function krzaki($str)
  62. {
  63. $lip = array("Ę", "ę", "Ó", "ó", "Ą", "ą", "Ł", "ł", "Ż", "ż", "Ź", "ź", "Ć", "ć", "Ń", "ń", "Ś", "ś");
  64. $liu = array("Ę", "ę", "Ó", "ó", "ˇ", "ą", "Ł", "ł", "Ż", "ż", "Ź", "Ľ", "Ć", "ć", "Ń", "ń", "Ś", "ś");
  65.  
  66. $str = str_replace($lip, $liu, $str);
  67.  
  68. return $str;
  69. }
  70. function dane ($filename, &$plik) {
  71. $file = fopen ($filename, "r");
  72. if (!$file){
  73. print 'blad!';
  74. }
  75. while (!feof($file)){
  76. $line = fgets ($file, 1024);
  77. $plik .= $line;
  78. }
  79. fclose($file);
  80. }
  81. ?>