Ik trek een stuk html uit de database
Nu wil ik: <p class="image">....</p> vervangen door iets anders, te weten door een soort pseudotag: %imageFile_<bestandsnaam>%. In het eerste geval dus: %imageFile_4_002.gif%.
Probleem: dit lukt voor geen meter. Mijn needle is in PHP
Het probleem zit hem in de eerste ".+", die er voor zorgt dat hij vanaf de eerste <p class=.... tot aan de laatste <img src=.... matched (ipv tot aan de <img src... in de eerste paragraaf). Maar ik weet niet hoe ik het anders moet aanpakken.
Iemand een idee?
EDIT. De backslashes in de html worden door een third-party script erin gegooid, ik moet die dus ook opnemen in mijn reguliere expressie
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
| <p class="image"> <a name="figsId_478"></a> <img src=\"http://www.mysite.nl/~rekcor/edictate_mirror/content/image/4_002.gif\" alt="Dehydrogenation of ortho-diphenols (in this example cathechol) to ortho-quinones. This reaction is called the catecholase-type." /><br /> <span class="legend">Figure %fig_478%. Dehydrogenation of ortho-diphenols (in this example cathechol) to ortho-quinones. This reaction is called the catecholase-type. </span> </p> <p class="image"><a name="figId_482"></a> <img src="http://www.mysite.nl/~rekcor/edictate_mirror/content/image/4_006.gif" alt="Reduction of quinones by L-ascorbic acid." /><br /><span class="legend">Figure %fig_482%. Reduction of quinones by L-ascorbic acid.</span></p><p class="image"> </p> <p class="image"><a name="figId_52"></a><img src="http://www.mysite.nl/~rekcor/edictate_mirror/content/image/1_003.gif" alt="Projection formulas of D-glucose, D-galactose, D-xylose and D-fructose." /><br /> <span class="legend">Figure %fig_52%. Projection formulas of D-glucose, D-galactose, D-xylose and D-fructose. </span> </p> |
Nu wil ik: <p class="image">....</p> vervangen door iets anders, te weten door een soort pseudotag: %imageFile_<bestandsnaam>%. In het eerste geval dus: %imageFile_4_002.gif%.
Probleem: dit lukt voor geen meter. Mijn needle is in PHP
PHP:
1
| $sNeedle = '/<p class=\\\?"image\\\?">.+<img.+src=.+'.basename($sImageFilename).'.+<br \/>(.+)?\/p>/i'; |
Het probleem zit hem in de eerste ".+", die er voor zorgt dat hij vanaf de eerste <p class=.... tot aan de laatste <img src=.... matched (ipv tot aan de <img src... in de eerste paragraaf). Maar ik weet niet hoe ik het anders moet aanpakken.
Iemand een idee?
EDIT. De backslashes in de html worden door een third-party script erin gegooid, ik moet die dus ook opnemen in mijn reguliere expressie
[ Voor 4% gewijzigd door Rekcor op 04-03-2008 15:27 ]