Autor | Zpráva | ||
---|---|---|---|
Vendy Profil |
Ahoj a dobrý den,
potřebovala bych od vás poradit, jak mám zjednat nápravu. Jeden z pluginů mi vyhazuje chybovou hlášku: Warning: preg_replace_callback(): Compilation failed: unmatched parentheses at offset 7 in /data/web/virtuals/132505/virtual/www/domains/xn--takyijemsvmi-lbb50t.eu/wp-content/plugins/wp-monalisa/wpml_func.php on line 218 Selským rozumem samozřejmě chápu, že se to týká souboru wpml_func.php daného pluginu, konkrétně řádku 218 a překladač mi našeptává, že jde snad o závorky. Ale jak napravit, na to jsem nepřišla. Můžete mi, prosím, poradit, co mám vlastně přepsat? Kousek daného kódu přikládám, snad to není ovlivněno něčím ještě výše: function wpml_convert_emoticons($text) { global $wpml_search; // no smilies to change, return original text if ( empty($wpml_search) ) return $text; // reset output $output = ''; // taken from wordpress 2.8 $textarr = preg_split("/(<.*>)/U", $text, -1, PREG_SPLIT_DELIM_CAPTURE); // capture the tags as well as in between $stop = count($textarr);// loop stuff for ($i = 0; $i < $stop; $i++) { $content = $textarr[$i]; if ((strlen($content) > 0)) { // && ('<' != $content{0})) { //If it's not a tag $content = preg_replace_callback($wpml_search, 'wpml_translate_emoticon', $content); } $output .= $content; } return $output; } Ten zmíněný 218 řádek je tento (i v kódu jsem jej označila): $content); Předem děkuji za každou dobrou radu, která by vedla k nápravě. |
||
User Profil * |
Bude to něco s regulárnímy výrazy.
wordpress.org/support/topic/compilation-failed-unmatched-parentheses-wpml_funcphp-on-line-218 |
||
Vendy Profil |
#3 · Zasláno: 2. 5. 2016, 18:32:02
User:
„Bude to něco s regulárnímy výrazy.“ S čím že to? Toto slyším/čtu poprvé, ani nevím, co to znamená |
||
User Profil * |
#4 · Zasláno: 2. 5. 2016, 18:36:27
|
||
Vendy Profil |
#5 · Zasláno: 2. 5. 2016, 18:38:23
User:
Děkuji, budu hledat dál |
||
juriad Profil |
#6 · Zasláno: 2. 5. 2016, 18:53:53
Vendy:
Buď se skutečně jedná o vadnou konfiguraci, jak zmiňuje User v [#2], nebo se jedná o bug. Na řádku 23 máš funkci preg_replace_callback, která jako první argument vyžaduje regulární výraz. Ty jí předáváš nějakou proměnnou $wpml_search , která obsahuje nějaké znaky, které mají v regulárním výrazu speciální význam. Takovým znakem je například závorka.
Vypiš si obsah té proměnné $wpml_search . Pak by to mělo být jasnější.
Opravit to budeš muset v konfiguraci pluginu. Připadně, pokud plugin používáš způsobem, který autor nezamýšlel, podívej se po místě, kde se tato proměnná nastavuje. Budeš chtít vhodně použít funkci preg_quote. Nebo také můžeš kontaktovat autora pluginu. User: Opravdu si myslíš, že odkaz na lmgtfy nějak pomůže? |
||
Vendy Profil |
#7 · Zasláno: 2. 5. 2016, 19:06:46
juriad:
„Takovým znakem je například závorka.“ Myšleno závorka, jako klasická závorka, tady toto () ? To je asi hloupost, že? V každém případě na jiném webu plugin používám a není tam problém.... což mi ovšem připomíná, že mě ještě nenapadlo zkusit to porovnat, ale v tom druhém mám už nahránu řadu smajlíků, tak nevím, jak to ovlivní zápis, ale zkusím to zkouknout. |
||
juriad Profil |
#8 · Zasláno: 2. 5. 2016, 19:09:33
Vendy:
Ano, přesně tato závorka. On skoro každý znak, který není písmeno nebo číslo má v regulárním výrazu speciální význam. |
||
Vendy Profil |
#9 · Zasláno: 2. 5. 2016, 19:24:29
juriad:
Zjevně nevím, kam s ní.... zkusila jsem to již i přehrát tím, co vím, že funguje a chyba je stejná. Nerozumím tomu, proč to na jednom místě funguje bez potíží a na druhém ne. A nastavení obou webů je stejné, přesto jeden funguje a druhý je popsaný tou chybou |
||
Časová prodleva: 9 let
|
0