![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
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 |
|
|
![]() |
![]()
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
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
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 |
|
|
![]()
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.
-------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
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 |
|
|
![]()
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:
pozdrawiam ![]() -------------------- 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.
|
|
|
![]()
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:
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 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
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 |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Porównaj
i
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. |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
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 |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 418 Pomógł: 8 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
-------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 15:36 |