2017-08-02 2 views
-1

J'ai une fonction preg_replace_callback et quand j'ouvrir ma page Web, je reçois l'avertissement suivant:PHP - Fonction preg_replace_callback

Attention: preg_replace_callback(): Nécessite argument 2, « stripslashes (strstr (" \ 2 \ 5" , "rel = \ class =")? "\ 1":

Ceci est ma fonction:

function ace_colorbox_replace($string) { 

    $pattern = '/(<a(.*?)href="([^"]*.)'.IMAGE_FILETYPE.'"(.*?)><img)/ie'; 

    $result = 'stripslashes(strstr("\2\5","rel=\class=") ? "\1" : "<a\2href=\"\3\4\"\5 rel=\"colorbox\" class=\"colorbox\"><img")'; 

    return preg_replace_callback($pattern, $callback, $string); 

} 

quelqu'un peut-il me aider s'il vous plaît? Merci
Br Robert

+0

Le deuxième argument de 'preg_replace_callack' doit être une fonction, pas une variable. – Toto

+0

Merci et comment écririez-vous toute la fonction alors? – Robert

+0

Remplacer '$ callback' par' function ($ m) {corps de la fonction ici} '. Voir le document pour les exemples – Toto

Répondre

0

La fonction que vous avez écrit est pas complète

dans vous avez $pattern défini tout droit, mais $callback variable n'est pas définie

Vous devez définir ou utiliser une

constante

Aussi vous avez la variable $result qui n'est pas utilisée donc inutile inutile

+0

Cela devrait être un commentaire. – Toto

0

Oh oui SRY, ce fut une erreur de copie

function ace_colorbox_replace($string) { 
    $pattern = '/(<a(.*?)href="([^"]*.)'.IMAGE_FILETYPE.'"(.*?)><img)/ie'; 
    $callback = 'stripslashes(strstr("\2\5","rel=\class=") ? "\1" : "<a\2href=\"\3\4\"\5 rel=\"colorbox\" class=\"colorbox\"><img")'; 
    return preg_replace_callback($pattern, $callback, $string); 
} 
+0

S'il vous plaît, éditez votre question si vous voulez ajouter quelques informations. – Toto

+0

Veuillez utiliser le lien modifier de votre question pour ajouter des informations supplémentaires. Le bouton Post-réponse ne doit être utilisé que pour les réponses complètes à la question. - [De l'avis] (/ review/low-quality-posts/16906818) – Frits