Βοήθεια με regex

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
ThyClub
Honorary Member
Δημοσιεύσεις: 5312
Εγγραφή: 17 Νοέμ 2003 00:21
Τοποθεσία: Hell's Kitchen
Επικοινωνία:

Βοήθεια με regex

Δημοσίευση από ThyClub » 28 Ιαν 2005 01:01

Λοιπόν, έχω τον παρακάτω κώδικα:

//Highlight any php code that is between :php: and :/php: tags
preg_match("/:php:(.*):\/php:/i",$string,$d);
//Replace the <br /> tags with \n lines so that the code tag keeps it's form
$d=eregi_replace("<br />","\n",$d[1]);
//Highlight it
$new="<strong>PHP:</strong><br />".highlight_string('<?php '.$d.' ?>',true);
//Replace the code with the highlighted one.
$string=preg_replace("/:php:(.*):\/php:/i",$new,$string);

return $string;
Δουλεύει βέβαια αλλά λίγο προβληματικά...

ΠΧ το :
:php:
$o="Hello world";
echo $o;
:/php:
το κάνει κανονικά highlight.

Το επόμενο όμως:
:php:
$o="Hello world";
echo $o;
:/php:

This was an example of echo.

:php:
phpinfo();
:/php:
Κάνει highlight όλο το κείμενο ακόμη και αυτό που είναι έξω απο τα :php: tags.

Το ξέρω οτι κάτι παίζει με την REGEX μου αλλά δεν μπορώ να καταλάβω τι κάνω στραβά.

Any help???

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

Βοήθεια με regex

Δημοσίευση από Rapid-eraser » 28 Ιαν 2005 01:47

to problima sou eivai aplo :) kai legete greedy matching
Otav dev exeis perasei to g option sto scan sou
tote to match paei sto megalitero divato tropo
... esy 8es to avapodo :)
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

Άβαταρ μέλους
ThyClub
Honorary Member
Δημοσιεύσεις: 5312
Εγγραφή: 17 Νοέμ 2003 00:21
Τοποθεσία: Hell's Kitchen
Επικοινωνία:

Βοήθεια με regex

Δημοσίευση από ThyClub » 28 Ιαν 2005 01:56

Δηλαδή να κάνω κάτι σαν:
preg_match("/:php:(.*):\/php:/g",$string,$d);
???

Βόηθα λίγο ρε συ rapido :P

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

Βοήθεια με regex

Δημοσίευση από Rapid-eraser » 28 Ιαν 2005 01:57

sorry dev eivai g eivai U to modifier gia ta ungreedy
Episis to regex sou eivai ligo problimatiko aftoka8e afto :P
8elei ligo pio siv8eto va eivai.
Pros8ese kai to modifier S gia va ipologizei sta string pou bazeis kai newlines kai va miv to kobei. omos parola afta prepei va to ipologiseis kai mesa sto ka8e iporeg pou dimiourgite ... afto sto afivo va to skefteis esy
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

Άβαταρ μέλους
softius
Script Master
Δημοσιεύσεις: 241
Εγγραφή: 11 Ιαν 2004 19:07
Επικοινωνία:

Βοήθεια με regex

Δημοσίευση από softius » 28 Ιαν 2005 12:11

Για δοκίμασε το :

Κώδικας: Επιλογή όλων

/&#58;php&#58;&#40;.*?&#41;&#58;\/php&#58;/gi

Άβαταρ μέλους
ThyClub
Honorary Member
Δημοσιεύσεις: 5312
Εγγραφή: 17 Νοέμ 2003 00:21
Τοποθεσία: Hell's Kitchen
Επικοινωνία:

Βοήθεια με regex

Δημοσίευση από ThyClub » 29 Ιαν 2005 00:10

Θα το κάνω... Thnx :wink:

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης