Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 11.09.2009 Ostrzeżenie: (0%)
|
Witam,
Mam skrypt, ktory wykorzystuje rekurencje i czasem wywala taki blad na konsoli: "Naruszenie zasad ochrony pamieci". Ktos wie w czym moze tkwic problem albo jak to mozna sprawdzic? i druga kwestia czy jest jakies rozwiazanie, ktore jesli dzialanie skryptu zostaje przerwane wywoluje inna funkcje/plik ? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 11.09.2009 Ostrzeżenie: (0%)
|
to jest taki spider/crawler do np robienia sitemap'y, zrobilem to z wykorzystaniem mysql:
function crawl($domain) { //select url not crawled yet $sql = "SELECT * FROM tmpUrlCrawled WHERE visited IS NULL LIMIT 1"; $result = mysql_query($sql) or die (mysql_error()."<br>Query: $sql"); if(mysql_num_rows($result)>0) { $url = mysql_result($result,0,"url"); $url = mysql_real_escape_string($url); //update url which was crawled $sql = "UPDATE tmpUrlCrawled set visited = 'y' WHERE url = '$url'"; $result = mysql_query($sql) or die (mysql_error()."<br>Query: $sql"); //crawl links if(preg_match("/^http[s]?:\/\/[^\/]*".str_replace('.', '\.', $domain)."/i", $url)) { $tmpLinks = getUrls($url); $tmpLinks = array_unique($tmpLinks); } //add crawled links to DB if($tmpLinks) foreach ($tmpLinks as $tmpLink) { $tmpLink = mysql_real_escape_string($tmpLink); $sql = "INSERT IGNORE INTO tmpUrlCrawled set url = '$tmpLink'"; $result = mysql_query($sql) or die (mysql_error()."<br>Query: $sql"); } //rekurencja crawl($domain); } }
Powód edycji: [thek]: Proszę oBBCode, bo czyta się to źle każdemu...
|
|
|
|
pietrekk Naruszenie zasad ochrony pamieci? 10.03.2010, 11:09:17
nospor rekurencja ma to do siebie, ze zjada duzo pamieci.... 10.03.2010, 11:28:41
pietrekk hmmm czyli jakie rozwiazania mozna zastosowac zeby... 10.03.2010, 11:40:18
nospor unikac rekurencji jak ognia. A jak sie nie da, to ... 10.03.2010, 11:42:18
pietrekk a mozna jakos sprawdzic ile pamieci juz rekurencja... 10.03.2010, 11:51:02
nospor Cytatwtedy i tak bedzie kontynuuowal od momentu pr... 10.03.2010, 11:55:39
thek Tutaj rekurencja? Ty chyba zgłupiałeś... Chcesz c... 10.03.2010, 12:49:06 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 16:58 |