8722 sujets

Développement web côté serveur, CMS

Bonjour,
passant en php5.3
j'ai un vieux script qui utilisait eregi (deprecated)

j'ai remplacé par preg_match mais apparemment la syntaxe change parce qu'il me retourne

Warning: preg_match() [function.preg-match0]: Unknown modifier '.'
Comment faut-il réécrire cela avec preg_matche au lieu de eregi

Merci


function lienurlrewriting($url) 
{
	if (preg_match("(.*).php(.*)",$url,$regs)) {
		$monurl = $regs[1];
		$geturl = $regs[2];
		while (preg_match("(.*)(\?|&)([^=]+)=([^=]*)(.*)",$geturl,$regs)) {
			$geturl = $regs[1].",".$regs[3].",".$regs[4].$regs[5];
		}
		$url = $monurl.$geturl;
	} elseif(preg_match("(.*).php",$url,$regs)) {
		$url = $regs[1];
	}
	return $url.".html";
}
Bonjour

je n'ai rien compris à ce que tu as dit et par ailleurs ton lien ne fonctionne pas

A bientôt
Cézig
OK, le point de fin de phrase a fait foirer l'URL, j'ai corrigé.

Donc, en suivant ce lien, tu tomberas sur une page de la doc PHP, le chapitre sur les PCRE (Perl-Compatible Regular Expressions), qui sont les expressions utilisées par les fonctions preg_*
Pour écrire une telle expression, il faut utiliser un délimiteur qui est un caractère non-alphanumérique, non-blanc et non-NUL : en général, slash (/) ou croisillon (#)

Du coup :
if(preg_match("#(.*).php(.*)#")) { ... }

Modifié par Seven tears (06 Nov 2013 - 15:34)