web-dev-qa-db-fra.com

Erreur "preg_match_all" avec le plugin Wordpress SEO by Yoast

J'espère que quelqu'un pourra vraiment m'aider ...

Je reçois ce message d'erreur:

"error Warning: preg_match_all() [function.preg-match-all]: Unknown modifier 'I' in /home/sulistyo/public_html/wp-content/plugins/wordpress-seo/admin/linkdex/linkdex.php on line 476" 

quand je saisis/écris un mot clé de focus sur wordpress seo meta box.

Je ne sais pas quoi faire pour résoudre l'erreur. J'espère que quelqu'un ou le développeur du plugin (Joost de Valk) pourra m'aider avec cette erreur - merci.

J'ai vraiment besoin de ton aide...

1
sulistyo

J'ai parcouru toutes les versions disponibles ici http://plugins.trac.wordpress.org/browser/wordpress-seo/tags/ et nulle part ailleurs. tout modificateur "I". Le modificateur "I" est évidemment non valide, d'où l'erreur. La mise à jour du plugin va certainement résoudre le problème. Ou du moins, si les mises à jour ne sont pas possibles, modifiez la ligne 476 de /wp-content/plugins/wordpress-seo/admin/linkdex/linkdex.php et tournez

$keywordCount = preg_match_all("/".$job["keyword"]."/msIU", $body, $res);

ou quoi que ce soit nécessaire pour:

$keywordCount = preg_match_all("/".$job["keyword"]."/msiU", $body, $res);

Une mise à jour :

Après que vous ayez mentionné "P" comme modificateur non valide, je me suis soudainement rendu compte que le mot-clé n'était pas échappé et que vous utilisiez peut-être une barre oblique inverse / à l'intérieur, rompant ainsi l'expression régulière.

En attendant une mise à jour, vous pouvez réécrire la ligne comme suit:

http://plugins.trac.wordpress.org/browser/wordpress-seo/trunk/admin/linkdex/linkdex.php#L476

$keywordCount = preg_match_all("#".$job["keyword"]."#msIU", $body, $res);

Notez que j'ai modifié les délimiteurs / en #. Vous n'allez probablement pas les utiliser, votre expression ne manquera donc pas.

http://php.net/manual/en/regexp.reference.delimiters.php

Sinon, vous pouvez utiliser preg_quote comme suit:

$keywordCount = preg_match_all("/".preg_quote($job["keyword"], '/')."/msIU", $body, $res);
1
soulseekah

Merci Soulseekah pour votre réponse. J'ai vérifié sur mon /wp-content/plugins/wordpress-seo/admin/linkdex/linkdex.php et ce qui est écrit là est exactement le même que vous mentionnez/écrivez ci-dessus, j'ai: $ keywordCount = preg_match_all (" /".$job["keyword"]."/msiU ", $ body, $ res); et je ne sais pas quoi et où est le problème. J'essaie de copier et de remplacer et rien ne se passe encore. La deuxième fois que j'essaie de ré-enregistrer mon mot clé fokus sur mon message, l'erreur se produisait mais avec un message différent: "error Attention: preg_match_all () [function.preg-match- all]: modificateur inconnu 'p' dans /home/sulistyo/public_html/wp-content/plugins/wordpress-seo/admin/linkdex/linkdex.php à la ligne 476 ". Pour information: cette erreur ne survient que sur l'un des posts, alors que le plugin semble bien fonctionner sur mes autres posts. btw, merci pour votre réponse .., merci beaucoup ...

0
sulistyo