| 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: 10 let
|
|||
0