/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Hightlight preg_replace
Fra : Lobais


Dato : 21-02-04 09:27

Jeg har lavet denne funktion
--
function html_hightlight ($string) {
$string = preg_replace ('_&lt;(.*?)&gt;_', '<span class="tag">&lt;$1&gt;</span>', $string);
$string = preg_replace ('_ (.*?)=&quot;(.*?)&quot;_', ' <span class="parameter">$1=&quot;<span class="string">$2</span>&quot;</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

On Sat, 21 Feb 2004 09:26:56 +0100, Lobais wrote:

> Nogle idéer til hvordan det undgås?

Mjaeh - http://dk2.php.net/manual/en/function.highlight-string.php

Mvh.
/Thomas


Henrik Stidsen (21-02-2004)
Kommentar
Fra : Henrik Stidsen


Dato : 21-02-04 14:55

Thomas Lindgaard <thomas@it-snedkeren.BLACK_HOLE.dk> wrote in
news:pan.2004.02.21.11.19.54.444669@it-snedkeren.BLACK_HOLE.dk

>> Nogle idéer til hvordan det undgås?
>
> Mjaeh - http://dk2.php.net/manual/en/function.highlight-string.php

Som highlighter PHP - det er HTML det handler om...

--
..: Henrik Stidsen - http://hs235.dk/ - http://hs235.dk/blog/ ::...
http://såkadulæredet.dk/ => http://xn--skadulredet-x8as.dk/

Thomas Lindgaard (21-02-2004)
Kommentar
Fra : Thomas Lindgaard


Dato : 21-02-04 16:15

On Sat, 21 Feb 2004 13:55:24 +0000, Henrik Stidsen wrote:

>> Mjaeh - http://dk2.php.net/manual/en/function.highlight-string.php
>
> Som highlighter PHP - det er HTML det handler om...

Oh ups.

Hvad så med at tilføje et U til det regulære udtryk så det bliver
ungreedy?

Mvh.
/Thomas

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 ('_&lt;(.*?)&gt;_', '<span class="tag">&lt;$1&gt;</span>', $string);
$string = preg_replace ('_ (.*?)=&quot;(.*?)&quot;_', ' <span class="parameter">$1=&quot;<span class="string">$2</span>&quot;</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:

'_&lt;(.*?)&gt;_U' og _ (.*?)=&quot;(.*?)&quot;_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:
>
> '_&lt;(.*?)&gt;_U' og _ (.*?)=&quot;(.*?)&quot;_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">&lt;div id=&quot;<span
class="string">templates</span>&quot;</span>&gt;</span>
i steddet for

<span class="tag">&lt;div <span
class="parameter">id=&quot;<span
class="string">templates</span>&quot;</span>&gt;</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


Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408848
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste