|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() |
Bonsoir à tous
J'ai ce code : Code :
preg_match_all('/^.*?<a .*?href="(.*?)".*?>.*?(<img .*?\/>).*?(.*?)<\/a>.*?$/ms', $paymentHook, $matches, PREG_SET_ORDER) Mais si le lien href contient une url encodée comme ci-dessous cela me renvoit une valeur de href vide ... Code :
https://www.site.com/page.php?!c2lyZXQ9NDQ5MDE5NDYyMDAwMzQlMkQwMiZyZWZlcmVuY2U9c3BwMjAxMDExMjAyMzAyNTgmbGFuZ3VlPUZSJmRldmlzZT05NzgmbW9udGFudD0xOSUyRTk5JnRheGU9MCUyRTAwJmhtYWM9MzFERTU1MjU3RDYyQzg2MDAyQUYzQ0Q3ODYwOUJDODNFMDIxQTZFMCZ1cmxyZXRvdXI9aHR0cCUzQSUyRiUyRnd3dyUyRWxhYmVsJTJEY3JhdmF0ZSUyRWNvbSUyRm9yZGVyJTJEY29uZmlybWF0aW9uJTJFcGhwJTNGa2V5JTdEZGFlYjliNmE1NTQwNmExOTUzNzlhYjdlNmIxZjFhZjcmZW1haWw9aGVyaXNzb24lMkV0aG9tYXMlNDBnbWFpbCUyRWNvbSZhcmcxPTU2MTkmbW95ZW49Q0JTJm1vZGFsaXRlPTF4Jm9rVVJMPWh0dHAlM0ElMkYlMkZ3d3clMkVsYWJlbCUyRGNyYXZhdGUlMkVjb20lMkZvcmRlciUyRGNvbmZpcm1hdGlvbiUyRXBocCUzRmtleSU3RGRhZWI5YjZhNTU0MDZhMTk1Mzc5YWI3ZTZiMWYxYWY3JmJhZFVSTD1odHRwJTNBJTJGJTJGd3d3JTJFbGFiZWwlMkRjcmF2YXRlJTJFY29tJTJG==
|
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Inscription : janvier 2006 Messages : 951 ![]() |
déjà, on va simplifier: supprime tes ? apres les étoiles c'est inutile, une * ce n'est pas un +.
change de séparateur, utilise .... le #, ça évitera d'avoir des pb échappement d'échappement.
__________________
PHP fait nativement la validation d'adresse électronique Utilisez le bouton résolu! |
|
|
01
|
|
|
#3 |
|
Membre Expert
![]() Inscription : janvier 2006 Messages : 951 ![]() |
ceci devrai pouvoir suffire pour un href sur un lien dans un document correctement encodé. il y aura des situations ou cette règle sera prise en défaut mais bon...
__________________
PHP fait nativement la validation d'adresse électronique Utilisez le bouton résolu! |
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() |
merci pour cette réponse si rapide (et si tard en plus
A priori elle fonctionne parfaitement pour mon soucis, je verrais bien à l'usage si je rencontre des problèmes autres, mais vu que j'utiliserais le même encodage d'url ça devrait le faire ! Encore un grand merci pour ton aide !
|
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Inscription : janvier 2006 Messages : 951 ![]() |
en fait je pensais surtout à des conditions ou tu as des liens imbriqués. Vu le nombre de points, l'expression régulière a le droit d'en oublier, sauf que son comportement habituel est d'avancer dans le motif aussitôt qu'elle le peut, c'est pourquoi un preg_match suffit à mon avis.
ensuite tu peux faire de la validation d'url via filter_var ou autrement pour distinguer les mailto: des https?: résolu?
__________________
PHP fait nativement la validation d'adresse électronique Utilisez le bouton résolu! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com