eregi_replace
ik heb een ubbc parser die mijn ubbc codes uit mijn texten moet halen en omzetten! maar bij images gaat het fout. voor een image komt er in mijn text
bv:
te staan, als dit 1 keer voorkomt is er geen probleem maar als dit meer als 1keer voorkomt maakt ziet hij het als

met als img="foto.jpg&align=center] [img=foto.jpg"
en align="center"
en het word vervangen door:
iemand een idee om dit op te lossen of te omzeilen ?
bv:
te staan, als dit 1 keer voorkomt is er geen probleem maar als dit meer als 1keer voorkomt maakt ziet hij het als

met als img="foto.jpg&align=center] [img=foto.jpg"
en align="center"
en het word vervangen door:
Code (php)
1
2
2
<?php
$bericht = preg_replace("/\[img=(.*)\&align=(.*)]/","<div align=\"\\2\"><img src=\"{$imagedir}/\\1\" border=\"0\"></div>",$bericht); ?>
$bericht = preg_replace("/\[img=(.*)\&align=(.*)]/","<div align=\"\\2\"><img src=\"{$imagedir}/\\1\" border=\"0\"></div>",$bericht); ?>
iemand een idee om dit op te lossen of te omzeilen ?
Gesponsorde koppelingen:
Misschien beter met twee keer een replace:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
// imagesstring vervangen
$str = str_replace ('[img=', '<img src=', $str);
$str = str_replace ('&align=center]', ' align=center>', $str);
?>
// imagesstring vervangen
$str = str_replace ('[img=', '<img src=', $str);
$str = str_replace ('&align=center]', ' align=center>', $str);
?>
is niet logisch ...
en die center kan ook left of richt zijn
kan je bv niet zeggen dat er in de "groep" tussen img= en &align= meer parameters meegeven zoals bv: max zoveel tekens ? of geen spaties .. of dergelijke ?
en die center kan ook left of richt zijn
kan je bv niet zeggen dat er in de "groep" tussen img= en &align= meer parameters meegeven zoals bv: max zoveel tekens ? of geen spaties .. of dergelijke ?
jasper:
is niet logisch ...
en die center kan ook left of richt zijn
kan je bv niet zeggen dat er in de "groep" tussen img= en &align= meer parameters meegeven zoals bv: max zoveel tekens ? of geen spaties .. of dergelijke ?
en die center kan ook left of richt zijn
kan je bv niet zeggen dat er in de "groep" tussen img= en &align= meer parameters meegeven zoals bv: max zoveel tekens ? of geen spaties .. of dergelijke ?
Niet logisch? Twee regeltjes code erbij voor left en right en klaar ben je.
Regexen zijn verdomd moeilijk, dus als je het op die manier op wilt lossen, ga je gang.
sorry als het grof over kwam, was niet de bedoeling maar tussen foto's kan ook nog text staan en dergelijke en als ik align= zou appart nemen, kom in problemen met andere andere tags. ik denk dat ik er nog maar eens een nachtje over ga slapen.
Je zou kunnen overwegen om te exploden op dat & teken. Dan krijg je een array met alle argumenten die je moet aanpassen.
Ik heb het ook met een preg_replace() gedaan en werkt bij mij prima.
Ik zal even m'n laptop opstarten en de code opzoeken, weet niet uit me hoofd hoe ik het gedaan had. moment
edit:
Sorry ik heb de code uit mijn script gehaald.
Ik zal even m'n laptop opstarten en de code opzoeken, weet niet uit me hoofd hoe ik het gedaan had. moment
edit:
Sorry ik heb de code uit mijn script gehaald.
Gewijzigd op 29/12/2005 09:41:00 door Erik Rijk
Als je meern parameters wilt toestaan, kun je je regexp veranderen in bijvoorbeeld:
/\[img=(.*)(?:\&[^\]]*)?\&align=(.*)]/
Laat ik even proberen uit te leggen wat (?:\&[^\]]*)? betekent:
Er wordt een groep aangemaakt () die 0 of 1x mag voorkomen: (laatste ?)
Voor de groep wordt geen referentie aangemaakt (?:)
De groep bestaat uit een & gevolgd door 0 of meer willekeurige karakters die niet gelijk zijn aan ]
Volgens mij moet dit zijn wat je bedoelt ;-)
/\[img=(.*)(?:\&[^\]]*)?\&align=(.*)]/
Laat ik even proberen uit te leggen wat (?:\&[^\]]*)? betekent:
Er wordt een groep aangemaakt () die 0 of 1x mag voorkomen: (laatste ?)
Voor de groep wordt geen referentie aangemaakt (?:)
De groep bestaat uit een & gevolgd door 0 of meer willekeurige karakters die niet gelijk zijn aan ]
Volgens mij moet dit zijn wat je bedoelt ;-)
jah, zoiets zocht ik, ik had al gevonden om er geen spaties in te laten voorkomen. maar dat is niet genoeg als de foto's op elkaar volgen!
danku willem!
danku willem!



