2017-04-16 4 views
-2

Ich habe versucht, einen Fehler in Wordpress-Backend für WPML Plugin mit diesem Vorschlag zu beheben: https://wpml.org/errata/product-variations-not-display-variation-original-language/Parse error: syntax error, unerwartet ''?]) (“ '(T_CONSTANT_ENCAPSED_STRING)

es nicht funktioniert hat und ich bekomme jetzt diesen Fehler:

Parse error: syntax error, unexpected '']?)(" ' (T_CONSTANT_ENCAPSED_STRING) in /home/sweetcelebration.nl/public_html/sweetcelebration.nl/wp-includes/functions.php on line 527

ich den Code am Anfang der functions.php eingefügt und es entfernt werden, wenn es nicht funktioniert ich habe nicht diesen Teil des Codes berühren, so bin ich nicht. sicher, warum das jetzt erscheint.

function wp_extract_urls($content) { 
    preg_match_all(
     "#(["']?)(" 
      . "(?:([w-]+:)?//?)" 
      . "[^s()<>]+" 
      . "[.]" 
      . "(?:" 
       . "([wd]+)|" 
       . "(?:" 
        . "[^`!()[]{};:'".,<>«»“”‘’s]|" 
        . "(?:[:]d+)?/?" 
       . ")+" 
      . ")" 
     . ")1#", 
     $content, 
     $post_links 
    ); 

    $post_links = array_unique(array_map('html_entity_decode', $post_links[2])); 
    return array_values($post_links); 
} 

Line ist

. "[^`!()[]{};:'".,<>«»“”‘’s]|"

Es tut mir leid, wenn diese dumme Frage. Ich habe andere ähnliche Fragen gelesen, die vorher gestellt wurden, fand aber meine Antwort nicht. Ich hoffe wirklich, dass jemand hier mir helfen kann. Vielen Dank im Voraus!

+0

Sie müssen das Anführungszeichen innerhalb der Regex entkommen lassen. Es wird als String-Literalendung geparst. –

Antwort

1

Sie alle " Escape-Zeichen sollte (Teil der Regex selbst zu sein) mit einem Backslash:

"#(["']?)("

wird

"#([\"']?)("

Und:

. "[^`!()[]{};:'".,<>«»“”‘’s]|" 

wird:

. "[^`!()[]{};:'\".,<>«»“”‘’s]|" 

Dieses es lösen sollte:

preg_match_all(
    "#([\"']?)(" 
     . "(?:([w-]+:)?//?)" 
     . "[^s()<>]+" 
     . "[.]" 
     . "(?:" 
      . "([wd]+)|" 
      . "(?:" 
       . "[^`!()[]{};:'\".,<>«»“”‘’s]|" 
       . "(?:[:]d+)?/?" 
      . ")+" 
     . ")" 
    . ")1#", 
    $content, 
    $post_links 
); 
0

Die interstitielle "Marken in dieser Linie werden entkam müssen. Zum Beispiel:

. "[^`!()[]{};:'\".,<>«»“”‘’s]|" 
Verwandte Themen