Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> wyrazenia regularne, roznice...
marcio
post 23.09.2007, 14:30:21
Post #1





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Chcialem sie zapytac jakie sa ronice pomiedzi ereg_replace, str_replace i preg_replace czytam o tym na necie ale nie widze roznice oprocz tego ze trzeba wpisac inne argumenty do funkji ale czy dzialanie jest takie same??Pytam poniewaz zaczolem poprawiac moj kod i bbcode zrobilem za pomoca str_replace lecz widze ze wiekszosc bbcode'ow jest zrobione za pomoca preg_replace i dzieki za odpowiedzi


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
devnul
post 23.09.2007, 16:11:41
Post #2





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

Ostrzeżenie: (0%)
-----


str_replace - podmienia tekst dokłądnie taki sam jak podany jako wzorzec, ereg i preg podmieniają zgodnie z wzorcem podanym jako wyrażenie regularne - preg_replace ma ponadto większe możliwości budowania wyrażeń regularnych od ereg_replace. na temat dokładnych różnic poczytasz w manualu


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
marcio
post 23.09.2007, 18:08:05
Post #3





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


czyli cos takiego w moim bbcod'zie jest poprawne
$zmien = str_replace(":D","<img src='obrazki/biggrin.gif' />", $zmien);


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
devnul
post 23.09.2007, 18:32:00
Post #4





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

Ostrzeżenie: (0%)
-----


jak najbardziej, ale postaraj się wstawiac wyrazenia w tablice (jesli jest ich więcej) zamiast duplikowac linie z zamianą kodu, jest to szybsze.
  1. <?php
  2. $zmien = str_replace(array(":D","lol"),array("<img src='obrazki/biggrin.gif' />",""<img src='obrazki/lol.gif' />"), $zmien);
  3. ?>


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
marcio
post 23.09.2007, 21:17:39
Post #5





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


to wytlumacz mi jaka bedzie roznica jak zrobie takie 2 wersje kodu

Kod
$zmien = str_replace("[i]","<i>", $zmien);

i
Kod
$zmien = preg_replace("#\[i\](.*?)\[/i\]#si", "<i>\\1</i>", $zmien);


bede ci bardzo wdzieczny


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
matix
post 23.09.2007, 21:22:49
Post #6





Grupa: Zarejestrowani
Postów: 278
Pomógł: 10
Dołączył: 13.02.2007
Skąd: Rybnik

Ostrzeżenie: (0%)
-----


Nie ma róznicy. Str_replace jest już nierozwijane, tak przynajmniej słyszałem. Preg, czyli wyrażenia są po prostu lekko szybsze. To wszystko - mimo wszystko dla takich prostych rzeczy jak BBCODE, bardziej polecam str_replace, ze wzledu na prostote:


  1. <?
  2. $aBbcode = array ('biggrin.gif', ':S', 'tongue.gif', 'ohmy.gif', '[b]', '[i]');
  3. $aBbto = array ('smiech.jpg', 'sux.jpg', 'jezyk.jpg', 'oo.jpg', 'pogrub.jpg', 'italic.jpg');
  4.  
  5. str_replace($aBbcode, $aBbto, $sString);
  6. ?>


pozdrawiam smile.gif


--------------------
Nawet, jeżeli nie jesteś zainteresowany usługami IT ani outsourcingiem, a Twoją pasją jest programowanie - zobacz naszą stronę. Piszemy dużo fajnych use-caseów, jak podchodzimy do tematu programowania dla naszych klientów. A tak na co dzień tworzymy budujemy mvp oraz tworzymy platformę b2b.
Go to the top of the page
+Quote Post
zimi
post 23.09.2007, 23:48:54
Post #7





Grupa: Zarejestrowani
Postów: 233
Pomógł: 9
Dołączył: 3.06.2007

Ostrzeżenie: (0%)
-----


@matix: co Ty za pierdoły opowiadasz?
co to ma znaczyć, że str_replace jest juz nierozwijane, prace nad tą funkcją zostały już z pewnością skończone
preg_replace też już jest "nierozwijane" jej edycja (jak i całych wyrażeń regularnych w PHP) prawdopodobnie nastąpi wtedy gdy twórcy uznają że jakaś opcja wyrażeń regularnych może okazać się przydatna
Wyrażenia są szybsze? wolne żarty... jak coś jest prostsze to jest szybsze a str_replace jest prostsze, ma mniejsze możliwości
@marcio: różnica będzie między innymi taka że str_replace w przypadku który podałeś zamieni jedynie [ i ] na <i>, a preg_replace również [ /i ] na </i> za sprawą wzorca
funkcja str_replace służy do zamieniania konkretnego ciągu na inny konkretny ciąg, ciągu który w Twoim wypadku składa się z trzech liter "[ i ]" i tylko nich na inny konkretny ciąg
a wyrażenia regularne to wyrażenia regularne, zamieniają ciągi które pasują do wzorca, a nie wyszukują kropka w kropkę tego wzorca i go nie zamieniają, jak tego nie rozumiesz to brak mi słów
porównaj sobie ew. działanie takich dwóch funkcji:
  1. <?php
  2. $zmien = preg_replace("#(.*?)#si", "<i>1</i>", $zmien);
  3. ?>

  1. <?php
  2. $zmien = str_replace("#(.*?)#si", "<i>1</i>", $zmien);
  3. ?>

a jak różnicy nie pojmiesz no to nie mam pojęcia co mógłbym Ci poradzić

Ten post edytował zimi 23.09.2007, 23:51:34
Go to the top of the page
+Quote Post
marcio
post 24.09.2007, 15:50:53
Post #8





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


oki mniej wiecej juz rozumiem str_replace uzywa sie dla prostoty a preg_replace dla wyrazen bardziej skomplikowanych ale czy taki kod ktora ma tworzyc linki:
Kod
<?php
$zmien = preg_replace("#\[url=(.*?)?(.*?)\](.*?)\[/url\]#si", "<A HREF='\\2' TARGET='top'>\\3</A>", $zmien);
?>

moge zrobic tak?
Kod
<?php
$zmien = str_replace("[url]", "<a href="">", $zmien);
$zmien = str_replace("[/url]", "</a>", $zmien);
?>

czy tak tez moze byc??Czy muszae dopisac tak
Kod
<?php
$zmien = str_replace("[url]", "<a href="\\1">\\2", $zmien);
$zmien = str_replace("[/url]", "</a>", $zmien);
?>

bo z tego co widze to \\1 i \\2 znaczy ze \\1 to pierwszy argument funkcji jaki trzeba wpisac poprawcie mnie jak mozecie poniewaz skadnia preg_replace mi sie nie podoba i tak btw to wiem ze mozna to zrobic latwiej za pomoca tablicy array ale jak narazie musze poznac dobrze skaldnie php


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
Sedziwoj
post 24.09.2007, 16:17:51
Post #9





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Porównaj
  1. <?php
  2. $zmien = 'cosooooooo[i]inne[/i]ffffvvv';
  3. $zmien = preg_replace("@[i](.*)@U", "<i>1</i>", $zmien);
  4. var_dump($zmien);
  5. ?>

i
  1. <?php
  2. $zmien = 'cosooooooo[i]inne[/i]ffffvvv';
  3. $zmien = str_replace(array("[i]",""), array("<i>","</i>"), $zmien);
  4. var_dump($zmien);
  5. ?>

Jest różnica?
A w czasie nie aż tak wielka, a wyrażenie regularne sprawdza poprawność zamykania znaczników (co najwyżej możesz dodać modyfikator i)


--------------------
Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami.
Go to the top of the page
+Quote Post
marcio
post 24.09.2007, 18:47:55
Post #10





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


tego nie rozumiem
"a wyrażenie regularne sprawdza poprawność zamykania znaczników (co najwyżej możesz dodać modyfikator i)"
a potem sprawdze co mi wyswietli przy var_dump() i czy ten bbocde do adresow www jest dobry?

okey napisze na nowo bbcode'a bo kolega mi powiedzial ze jesli ktos wpisze tylko [i]sssss bez [/iu] to i tak tekst pogrubi bo str_replace zamiania tylko tekst i do tego mam uzyc preg_replace i ereg_replace czy on ma racje?

i jeszcze jedno czy ktos z was zna jakis latwy i po polsku artukol o preg_replace??


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
qqrq
post 24.09.2007, 20:59:52
Post #11





Grupa: Zarejestrowani
Postów: 418
Pomógł: 8
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


A o:

http://gajdaw.pl/php/wyrazenia-regularne-pcre-php-tutorial/index.html


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 15:36