Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

php preg_replace() - Segmentation fault

[es] :: PHP :: php preg_replace() - Segmentation fault

[ Pregleda: 1302 | Odgovora: 4 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

NetworkAdmin
Zoran Knezevic
programer u jednoj X kompaniji, radim na daljinu onli..
Beograd

Član broj: 4445
Poruke: 609
*.bbone.utic.net.ba.

Sajt: www.rentalio.com


Profil

icon php preg_replace() - Segmentation fault29.10.2004. u 13:15

Evo sad me raspizdi PHP.

Vrsim persiranje HTML dokumenata i na svakih 1000 do 2000 desi se preg_replace da izazove Segmentation fault

Mije mi jasno sta bi mogao biti uzrok jeli neko ima ideju. Nije problem da zbog nevalidnog HTML recimo skripta nista ne matchuje ali mi je problem sto prekine rad skripte.
29.10.2004. u 13:15 

NetworkAdmin
Zoran Knezevic
programer u jednoj X kompaniji, radim na daljinu onli..
Beograd

Član broj: 4445
Poruke: 609
*.bbone.utic.net.ba.

Sajt: www.rentalio.com


Profil

icon Re: php preg_replace() - Segmentation fault29.10.2004. u 16:54
nasao sam da mi php puca na fajlovima koji imaju ogromne stringove jedan 20kb u nizu base64 encoded ali ne i wrapped kao value za hidden polje pa kad preg_replace krene da skida html tags ima problem jer prekoraci stek
29.10.2004. u 16:54 

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.83.beocity.net.

Sajt: localhost


Profil

icon Re: php preg_replace() - Segmentation fault30.10.2004. u 15:29
daj regex koji koristiš, da ga ispravimo..

sigurno može da se napravi bar da bude safe (da ne puca), a verovatno i da radi kako treba.. ;)

btw, ako koristiš samo za skidanje html tagova, onda bolje koristi neku specijalizovanu c funkciju za to (striptags, tidy, etc..)

30.10.2004. u 15:29 

Gojko Vujovic
Juniper Networks
Amsterdam, NL

Administrator
Član broj: 1
Poruke: 13061
*.gojko.ss.

Sajt: www.gojkovujovic.com


Profil

icon Re: php preg_replace() - Segmentation fault30.10.2004. u 16:10
Jesi li možda skoro prelazio na noviju verziju php-a? Probaj sa starijom a u međuvremenu daj regexp i neki primer pa da probamo da rešimo.
30.10.2004. u 16:10 

Not now, John!

Član broj: 231
Poruke: 1307
*.dialup.blic.net.



Profil

icon Re: php preg_replace() - Segmentation fault30.10.2004. u 19:42
Meni se isto to dešavalo, ali samo na Win platformi. Kombinacija je MySQL/PHP. Dešava se samo kada se regexp primjenjuje na dugačak tekst.
Koristim sljedeće:
Code:
  function make_URL($matches) {
    global $filename;
    if ($_GET['more']==1)
      $tmp="<a href=\"$filename?word=".urlencode($matches[1])."&more={$_GET['more']}\">{$matches[1]}</a>";
    else
      $tmp="<a href=\"$filename?word=".urlencode($matches[1])."\">{$matches[1]}</a>";
    return $tmp;
  }
  function BBdecode($text) {
    $text=str_replace("\n","<br>\n", $text);
    $text=preg_replace('/\[list=(a|1)\]((.|\n)*)\[\/list\]/U',"<ol type=\"\\1\">\\2</ol>",$text);
/* ne dozvoljava ugniježdene liste */
    $text=str_replace("[*]","<li>",$text);
    $text=str_replace("[b]","<span style=\"font-weight: bold\">",$text);
    $text=str_replace("[/b]","</span>",$text);
    $text=str_replace("[i]","<span style=\"font-style: italic\">",$text);
    $text=str_replace("[/i]","</span>",$text);
    $text=str_replace("[u]","<span style=\"text-decoration: underline\">",$text);
    $text=str_replace("[/u]","</span>",$text);
    $text=preg_replace('/\[color=(\#[0-9a-fA-F]{1,6})\]/',"<span style=\"color: \\1\">",$text);
    $text=str_replace('[/color]','</span>',$text);
    $text=preg_replace_callback("/\[see\](.*)\[\/see\]/U", "make_URL", $text);
    return $text;
  }

Nisam siguran da je do preg_replace_callback funkcije (dobijam samo Segmentation fault).
Iste funkcije na istom tekstu, na Linuxu ne prave ovu grešku. Na Win je PHP 4.3.2, a na Linuxu je PHP 4.3.6
"I'd take the awe of understanding over the awe of ignorance any day."
- Douglas Adams
30.10.2004. u 19:42 

[es] :: PHP :: php preg_replace() - Segmentation fault

[ Pregleda: 1302 | Odgovora: 4 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.