[php] regexp probleempje

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Wie o wie kan mij even uit de brand helpen? Ik heb een door een wysiwyg editor gegenereerde lap HTML code. Deze haal ik uit een textarea in de database en wil daarna zoeken op imagetags die er allemaal als volgt uit zien:

[img]"http://www.domein.nl/sre/data/origineel/64_1.jpg"[/img]

Hiervan wil ik even de width en de id in een aparte variabele zetten en dan elke imagetag vervangen voor:

[img]"http://www.domein.nl/sre/data/64_1.jpg"[/img] Dus overbodige troep eruit filteren.

Nu ben ik met de volgende code al een heel eind:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
$string = $data->Record["html_data"]; 
echo $string; 

$pattern="/\<IMG[.]*\>/i"; 

echo htmlspecialchars($string); 
echo '<hr>'; 

$pattern="/\<IMG [^\>]*/i"; 
$x=preg_match_all($pattern,$string,$results); 
for ($i=0;$i<count($results);$i++) 
{ 
     for ($j=0;$j<count($results[$i]);$j++) 
     { 
        $imgtag=$results[$i][$j]; 
        $widths=array(); 
        
        echo '<br><b>found tag:</b>'.htmlspecialchars($imgtag); 

        $pattern="WIDTH:[^0-9]?([0-9]+)";
        eregi($pattern,$results[$i][$j],$breedte_array); 
        echo '<br>width:</b>'.$breedte_array[1]; 

        $pattern="id=[^0-9]?([0-9_]+)"; 
        eregi($pattern,$results[$i][$j],$id); 
        echo '<br>id:</b>'.$id[1]; 

        $origineletag = htmlspecialchars($imgtag);
        $nieuwetag = "<IMG id=". $id[1]." alt=\"\" src=\"http://www.domein.nl/sre/data/".$id[1].".jpg\"";
        $bodytag = str_replace($imgtag,$nieuwetag,$string);
    }
}


Ik heb nu de width en id waarde in twee aparte variabelen staan. Nu wil ik alleen nog die imagetags veranderen. Kan dit per imagetag? En hoe? Moet ik dan eregi_replace() gebruiken? In bovenstaand voorbeeld probeer ik het met str_replace() Dit moet in principe ook werken. Maar hoe?

[ Voor 25% gewijzigd door Verwijderd op 25-11-2002 15:57 ]


Acties:
  • 0 Henk 'm!

  • Erik Jan
  • Registratie: Juni 1999
  • Niet online

Erik Jan

Langzaam en zeker

Volgens mij doe je het veel te moeilijk ;) Dit is niet getest overigens, maar mocht het niet werken moet je wel in deze richting denken.

PHP:
1
$str = preg_replace('/[img]"(.*)">/Us',[/img]', $str);

[ Voor 21% gewijzigd door Erik Jan op 25-11-2002 16:02 . Reden: backslashes erbij ]

This can no longer be ignored.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
meen je dat echt? Zou het zo eenvoudig kunnen? Alle images uit het hele document? Shiiiitt _/-\o_ Ik wil de alt ook nog meenemen naar het nieuwe url. Hoe kan ik dan de id en width in een variabele zetten? Deze heb ik namelijk nodig voor het imagemagicken van de plaatjes. Of kan ik gewoon \\1 en \\2 gebruiken? Wat betekend die /Us overigens?

Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Verwijderd schreef op 25 November 2002 @ 16:09:
Of kan ik gewoon \\1 en \\2 gebruiken?

Probeer het eens uit zou ik zeggen.
Wat betekend die /Us overigens?
lezen

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
sorry dat ik het vroeg.

Acties:
  • 0 Henk 'm!

Verwijderd

drm schreef op 25 november 2002 @ 16:17:

[...]

Probeer het eens uit zou ik zeggen.
[...]
lezen
Je doet het ook wel heel erg vriendelijk he ;)

maar idd't staat er in :+
Pagina: 1