|
| Hightlight preg_replace Fra : Lobais |
Dato : 21-02-04 09:27 |
|
Jeg har lavet denne funktion
--
function html_hightlight ($string) {
$string = preg_replace ('_<(.*?)>_', '<span class="tag"><$1></span>', $string);
$string = preg_replace ('_ (.*?)="(.*?)"_', ' <span class="parameter">$1="<span class="string">$2</span>"</span>', $string);
return $string;
}
--
til at hightlighte html.
Mit problem er at anden preg_replace tar' mere end den må. Den skal kun
tage fx id="" men isteddet tar' den <a id="". Nogle idéer til hvordan det
undgås?
--
Thomas
- "Videnskab uden religion er lam,
religion uden videnskab er blind." - Albert Einstein
| |
Thomas Lindgaard (21-02-2004)
| Kommentar Fra : Thomas Lindgaard |
Dato : 21-02-04 12:20 |
| | |
Henrik Stidsen (21-02-2004)
| Kommentar Fra : Henrik Stidsen |
Dato : 21-02-04 14:55 |
| | |
Thomas Lindgaard (21-02-2004)
| Kommentar Fra : Thomas Lindgaard |
Dato : 21-02-04 16:15 |
| | |
Lobais (21-02-2004)
| Kommentar Fra : Lobais |
Dato : 21-02-04 18:34 |
|
Sat, 21 Feb 2004 16:14:32 +0100. skrev Thomas Lindgaard:
> Hvad med at tilføje et U til det regulære udtryk så det bliver
> ungreedy?
GOD IDE!
Øhm... Jeg er lidt noob til det der, hvordan præcis mener du? Jeg skal
tilføje \U et eller andet sted ikke?
function html_hightlight ($string) {
$string = preg_replace ('_<(.*?)>_', '<span class="tag"><$1></span>', $string);
$string = preg_replace ('_ (.*?)="(.*?)"_', ' <span class="parameter">$1="<span class="string">$2</span>"</span>', $string);
return $string;
}
--
Thomas
- "Videnskab uden religion er lam,
religion uden videnskab er blind." - Albert Einstein
| |
Kasper Garnæs (21-02-2004)
| Kommentar Fra : Kasper Garnæs |
Dato : 21-02-04 19:14 |
|
Lobais <thomas@ahle.dk> wrote:
> Sat, 21 Feb 2004 16:14:32 +0100. skrev Thomas Lindgaard:
>
>> Hvad med at tilføje et U til det regulære udtryk så det bliver
>> ungreedy?
>
> GOD IDE!
> Øhm... Jeg er lidt noob til det der, hvordan præcis mener du? Jeg skal
> tilføje \U et eller andet sted ikke?
Jo - du skal tilføje et U efter dine regulære udtryk. Jeg er selv lidt
forvirret over underscores'ne i dine udtryk, men hvis de bruges som
afgrænsere, foregår det vel sådan her:
'_<(.*?)>_U' og _ (.*?)="(.*?)"_U
--
Med venlig hilsen / Regards
Kasper Garnæs
http://kasper.garnaes.dk
| |
Thomas Lindgaard (21-02-2004)
| Kommentar Fra : Thomas Lindgaard |
Dato : 21-02-04 23:43 |
|
On Sat, 21 Feb 2004 19:14:23 +0100, Kasper Garnæs wrote:
> Jo - du skal tilføje et U efter dine regulære udtryk. Jeg er selv lidt
> forvirret over underscores'ne i dine udtryk, men hvis de bruges som
> afgrænsere, foregår det vel sådan her:
>
> '_<(.*?)>_U' og _ (.*?)="(.*?)"_U
Ko-rrekt.
Mvh.
/Thomas
| |
Lobais (22-02-2004)
| Kommentar Fra : Lobais |
Dato : 22-02-04 08:43 |
|
Sat, 21 Feb 2004 16:14:32 +0100. skrev Thomas Lindgaard:
> Hvad så med at tilføje et U til det regulære udtryk så det bliver
> ungreedy?
Det var vist desværre ikke det der skulle til. Problemet er jo at en
linje ser ud som
<span class="parameter"><span class="tag"><div id="<span
class="string">templates</span>"</span>></span>
i steddet for
<span class="tag"><div <span
class="parameter">id="<span
class="string">templates</span>"</span>></span>
Jeg har tænkt lidt på om man skulle forbyde mellemrum i parameter, men
det gør nok ikke.
--
Thomas
- "Videnskab uden religion er lam,
religion uden videnskab er blind." - Albert Einstein
| |
|
|