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

preg_replace za [code] tag

[es] :: PHP :: preg_replace za [code] tag

[ Pregleda: 2094 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Zoran Rašković
Serbia

Član broj: 95
Poruke: 1360
*.krusevac-2.tehnicom.net



Profil

icon preg_replace za [code] tag14.08.2002. u 06:09

Ne mogu da se pohvalim da sam u potpunosti ovladao regularnim izrazima, ali mi je ovo stvarno hitno... Naime, imam:

Code:

$msg1 = preg_replace("/\[code\](.*)\[\/code\]/i", "<table border=0 align=center width=90% cellpadding=3 cellspacing=1><tr><td class='code'><b>Code:</b><br><font color='green'>\\1</font><br></td></tr></table>", $msg1);


Problem je sto ovaj code lepo radi ako bih sve napisao i jednom redu, ali ako pritisnem enter vise puta i zavrsim code tag, onda ga uopste ne renderuje lepo vec samo prikaze ovaj gornji code na stranici.

Isti mi je slucaj i kod quote tagova:

Code:

$msg1 = preg_replace("/\[quote\](.*)\[\/quote\]/i", "<blockquote><font size=1>quote:</font><hr>\\1<hr></blockquote>", $msg1);


Znaci ako napisem u jednom redu onda je ok, ali ako pritiskam enter onda ne renderuje uopste :(

Hvala na pomoci,
Zoran
14.08.2002. u 06:09 

Gojko Vujovic
Amsterdam, NL

Administrator
Član broj: 1
Poruke: 13396
*.elitesecurity.org.

Sajt: www.gojkovujovic.com


Profil

icon Re: preg_replace za [code] tag14.08.2002. u 13:06
Dodaj 'm' pattern modifier, dakle:
$msg1 = preg_replace("/\[code\](.*)\[\/code\]/im"...

14.08.2002. u 13:06 

Dejan Topalovic
Dejan Topalović
Senior Oracle DBA & Senior PL/SQL
Developer, Erste Sparinvest (Erste
Bank), Vienna, Austria
Vienna

Član broj: 635
Poruke: 1374
*.1.14.vie.surfer.at

Sajt: www.baze-podataka.net


Profil

icon Re: preg_replace za [code] tag14.08.2002. u 14:18
Laptopovi

Da dodam samo...
m identifier oznacava multiline.

http://www.php.net/manual/en/pcre.pattern.modifiers.php

m (PCRE_MULTILINE)
By default, PCRE treats the subject string as consisting of a single "line" of characters (even if it actually contains several newlines). The "start of line" metacharacter (^) matches only at the start of the string, while the "end of line" metacharacter ($) matches only at the end of the string, or before a terminating newline (unless D modifier is set). This is the same as Perl.

When this modifier is set, the "start of line" and "end of line" constructs match immediately following or immediately before any newline in the subject string, respectively, as well as at the very start and end. This is equivalent to Perl's /m modifier. If there are no "\n" characters in a subject string, or no occurrences of ^ or $ in a pattern, setting this modifier has no effect.


Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
14.08.2002. u 14:18 

Zoran Rašković
Serbia

Član broj: 95
Poruke: 1360
*.krusevac-2.tehnicom.net



Profil

icon Re: preg_replace za [code] tag14.08.2002. u 19:02
Dodao sam ovaj m modifier ali je ista prica i dalje :(, znaci ne prikazuje kako treba:

Code:

$name=stripslashes($myrow[1]);
$name=htmlspecialchars($name);
$msg1=$myrow[2];
$msg1=htmlspecialchars($msg1);
$msg1=stripslashes($msg1);
$msg1=nl2br($msg1);

$msg1 = preg_replace("/\[quote\](.*)\[\/quote\]/im", "<blockquote><font size=1>quote:</font><hr>\\1<hr></blockquote>", $msg1);

$msg1 = preg_replace("/\[code\](.*)\[\/code\]/im", "<table border=0 align=center width=90% cellpadding=3 cellspacing=1><tr><td class='code'><b>Code:</b><br><font color='green'>\\1</font><br></td></tr></table>", $msg1);

echo "<B>$name</B><p>$msg1";
14.08.2002. u 19:02 

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

Član broj: 4128
Poruke: 3448
*.rcub.bg.ac.yu

Sajt: localhost


Profil

icon Re: preg_replace za [code] tag15.08.2002. u 03:29
probaj 's' patern modifier umesto 'm'... to meni uvek zavrsi posao...

a cisto da se ne bi vratio opet ovde, dodaj i 'U' modifier, koji oznacava "ungreedy", sto u prevodu znaci da ako imash na dva mesta po par [code] tagova, sa 'U' modifierom nece da uhvati pocetak prvog i kraj zadnjeg, nego ce da ih odradi odredjeno...

znaci, moja licna preporuka je 'isU' pattern modifier string... ovo ja uglavnom koristim...

a josh vise preporucujem da malo i RTFM o pattern modifierima...

http://www.php.net/manual/en/pcre.pattern.modifiers.php

Citat:

s (PCRE_DOTALL)
If this modifier is set, a dot metacharacter in the pattern matches all characters, including newlines. Without it, newlines are excluded. This modifier is equivalent to Perl's /s modifier. A negative class such as [^a] always matches a newline character, independent of the setting of this modifier.

15.08.2002. u 03:29 

Zoran Rašković
Serbia

Član broj: 95
Poruke: 1360
*.krusevac-2.tehnicom.net



Profil

icon Re: preg_replace za [code] tag15.08.2002. u 04:21
To je to, hvala jos jednom.
15.08.2002. u 04:21 

bugsu
Vojvodina - Subotica

Član broj: 40006
Poruke: 379
93.86.35.*



Profil

icon Re: preg_replace za [code] tag17.06.2009. u 10:55
dizem temu iz mrtvih al zato sto imam problem ...

uradim ovo
Code:
$description = "[vid]596[/vid] taj broj";
$search = "/\[vid\](.*)\[\/vid\]/isU";
$replace = "Broj je \\1";

$msg = preg_replace($search, $replace, $description);
echo $msg;


i ja za echo dobijem
Broj je 596 taj broj



a meni treba samo da zameni tj da ispise ...Broj je 596
i to je sve....u cemu gresim?
Say NO to pop culture!!!
Crno je uvek u modi....
17.06.2009. u 10:55 

Nikola Poša
PHP programer, Media Matrix d.o.o.
Beograd

Član broj: 173839
Poruke: 1461
*.adsl-a-1.sezampro.yu.

Sajt: www.nikolaposa.in.rs


Profil

icon Re: preg_replace za [code] tag17.06.2009. u 11:17
Pogrešno si shvatio ideju preg_replace-a... On ne treba da zameni ceo taj $description za tvoj $replace, već on menja taj pattern sa onim što mu ti pošalješ kao replacement:
Citat:
Searches subject for matches to pattern and replaces them with replacement.

Ono što ti hoćeš možeš da postigneš ovako:
Code:

$description = '[vid]596[/vid] taj broj';
$search = '/\[vid\](.+)\[\/vid\]/Uis';

preg_match($search, $description, $niz);

echo 'Broj je ' . $niz[1];

17.06.2009. u 11:17 

bugsu
Vojvodina - Subotica

Član broj: 40006
Poruke: 379
93.86.35.*



Profil

icon Re: preg_replace za [code] tag17.06.2009. u 11:23
jaooo ...puko sam definitivno ....dobro sam ja svatio ...to meni i treba...samo nzm sta mi bi da pitam...pad koncentracije izgleda :/


jer pravim embed kod ....i [vid] - [/vid] treba da zameni sa emebed kodom a ostalo ostavi :s.....izvini na cimanju ...
Say NO to pop culture!!!
Crno je uvek u modi....
17.06.2009. u 11:23 

[es] :: PHP :: preg_replace za [code] tag

[ Pregleda: 2094 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

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