[PHP] search in content en replace

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb hier een probleem waar ik niet helemaal uitkom en ik hoop dat iemand mij hiermee verder kan helpen.

Ik lees een groot stuks tekst uit de database en ik wil kijken of hier de volgende
tekst in voor komt waarbij het email adres uiteraard wisseld:

<mail>doubleub@test.com</mail>

nu moet ik dus eerst controleren of deze combinatie met <mail>..</mail> bestaat.
Dit zou eventueel kunnen met "preg_replace" waarbij je het deel kunt vervangen.

code:
1
$message =  preg_replace("/<MAIL>.*<\/MAIL>/s", "[img]'mail.gif[/img]", $message);


Maar nu zou ik graag enkel de naam : dus doubleub in de naam van het plaatje verwerken zodat ik eigenlijk het volgende krijg:

code:
1
$message =  preg_replace("/<MAIL>.*<\/MAIL>/s", "[img]'maildoubleub.gif[/img]", $message);


Is er een mogelijkheid om dus de naam uit het emailadres te halen en tevens te verwerken in de preg_replace zodat ik een unieke naam bij het plaatje krijg ?

en is er ook een mogelijkheid om te controleren of hij een replace heeft uitgevoerd ? want hij moet dan nog wel eventjes het gifje genereren.

[ Voor 24% gewijzigd door Verwijderd op 22-08-2004 17:18 ]


Acties:
  • 0 Henk 'm!

Verwijderd

$message = preg_replace("/<MAIL>(.*?)@(.*?)<\/MAIL>/s", "[img]'mail$1.gif'[/img]", $message);

Als je dan nog het hele adres nodig hebt kan je die zo in de preg_replace gebruiken: "$1@$2"

[ Voor 83% gewijzigd door Verwijderd op 22-08-2004 17:21 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Thanks... dat werkt werkt perfect maar is dit ook nog te controleren of hij deze bewerking heeft uitgevoerd want ik zou dan op dat moment een gifje willen genereren.

Acties:
  • 0 Henk 'm!

Verwijderd

Wat je dan kan doen is het volgende:
-Stop het originele bericht in de variabele "$message_original"
-Stop de uitvoer van de preg_replace in de variabele "$message_new"
-Controleer of beide variabelen aan elkaar gelijk zijn, zoniet: dan heeft preg_replace de bewerking uitgevoerd.

[ Voor 11% gewijzigd door Verwijderd op 22-08-2004 17:32 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik dacht even dat dat de oplossing was maar dan heb je de naam niet die het gifje moet krijgen, want $1 kun je buiten de preg_replace niet gebruiken.

Het is dus eigenlijk de bedoeling dat als er iemand in het forum de tag gebruikt:

code:
1
<mail>test@test.nl</mail>


dat er een image wordt gemaakt met het emailadres en de naam van de image krijgt alleen de naam van het emailadres.

Het leek zo gemakkelijk :'(

[ Voor 12% gewijzigd door Verwijderd op 22-08-2004 17:47 ]


Acties:
  • 0 Henk 'm!

  • Radiant
  • Registratie: Juli 2003
  • Niet online

Radiant

Certified MS Bob Administrator

Dat kan op ongeveer dezelfde manier maar dan met preg_match(): http://nl2.php.net/preg_match

Acties:
  • 0 Henk 'm!

  • semicolon
  • Registratie: Mei 2004
  • Niet online
Verwijderd schreef op 22 augustus 2004 @ 17:38:
ik dacht even dat dat de oplossing was maar dan heb je de naam niet die het gifje moet krijgen, want $1 kun je buiten de preg_replace niet gebruiken.

Het is dus eigenlijk de bedoeling dat als er iemand in het forum de tag gebruikt:

code:
1
<mail>test@test.nl</mail>


dat er een image wordt gemaakt met het emailadres en de naam van de image krijgt alleen de naam van het emailadres.

Het leek zo gemakkelijk :'(
PHP:
1
2
$message = preg_replace("/<MAIL>(.*?)<\/MAIL>/se", '$eMail = "\\1";', $message);
echo $eMail;


Niet getest, maar zoiets zal het zijn wat jij wilt lijkt mij?
(e = execute modifier, kun je dus php code gebruiken in het 2e argument, en zo sla ik t dan op in een variabel in dit voorbeeld, en die variabel kun je overal gebruiken... je kan t verder zelf wel afwerken denk ik :)

:D/-<


Acties:
  • 0 Henk 'm!

Verwijderd

Max v W schreef op 22 augustus 2004 @ 17:54:
[...]


PHP:
1
2
3
$message = preg_replace("/<MAIL>(.*?)<\/MAIL>/se", 
'$eMail = "\\1";', $message);
echo $eMail;


Niet getest, maar zoiets zal het zijn wat jij wilt lijkt mij?
(e = execute modifier, kun je dus php code gebruiken in het 2e argument, en zo sla ik t dan op in een variabel in dit voorbeeld, en die variabel kun je overal gebruiken... je kan t verder zelf wel afwerken denk ik :)
Wat je ook kan doen is een aparte functie schrijven, en $1 als argument meegeven, en binnen die functie het plaatje maken en de <img> tag returnen.

[ Voor 47% gewijzigd door Verwijderd op 22-08-2004 18:54 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hier ben ik flink mee geholpen _/-\o_

Het gifje wordt al gegenereerd en neergezet als je de tag gebruikt ...

Nu nog mooi afwerken :)
Pagina: 1