[Résolu]Warning: preg_replace_callback(): Requires argument 2 -
yake - 15/09/2014
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: 1.11.10
#~ Url du site :
#~ Hébergeur / Soft : EasyPHP
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 1.11.11
#~ Installed Modules:
#~ CMSMailer: 5.2.2
#~ CMSPrinting: 1.0.5
#~ FileManager: 1.4.5
#~ MenuManager: 1.8.6
#~ MicroTiny: 1.2.7
#~ ModuleManager: 1.5.8
#~ News: 2.14.4
#~ Search: 1.7.11
#~ ThemeManager: 1.1.8
#~ Config Information:
#~ php_memory_limit:
#~ process_whole_template:
#~ max_upload_size: 2000000
#~ url_rewriting: none
#~ page_extension:
#~ query_var: page
#~ image_manipulation_prog: GD
#~ auto_alias_content: true
#~ locale:
#~ default_encoding: utf-8
#~ admin_encoding: utf-8
#~ set_names: true
#~ Php Information:
#~ phpversion: 5.5.8
#~ md5_function: On (Vrai)
#~ gd_version: 2
#~ tempnam_function: On (Vrai)
#~ magic_quotes_runtime: Off (Faux)
#~ E_STRICT: 2048
#~ E_DEPRECATED: 8192
#~ memory_limit: 128M
#~ max_execution_time: 30
#~ output_buffering: 4096
#~ safe_mode: Off (Faux)
#~ file_uploads: On (Vrai)
#~ post_max_size: 8M
#~ upload_max_filesize: 2M
#~ session_save_path: C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\binaries\tmp (0777)
#~ session_use_cookies: On (Vrai)
#~ xml_function: On (Vrai)
#~ xmlreader_class: On (Vrai)
#~ Server Information:
#~ Server Api: apache2handler
#~ Server Db Type: MySQL (mysqli)
#~ Server Db Version: 5.6.15
#~ Server Db Grants: Trouvé un privilège "GRANT ALL" qui semble être adapté
#~ Server Time Diff: Aucune différence de date du système de fichiers trouvées
#~ ----------------------------------------------
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~
Bonjour à tous,
Attention ma version est 11.11.11 et 11.11.10
Je viens d'installer CMSMS en local sous EasyPHP.
Tout a bien l'air de fonctionner, sauf deux lignes d'erreurs se répétant plusieurs fois quand j'affiche Contenu>pages dans l'admin.
Code :
Warning: preg_replace_callback(): Requires argument 2, '_code2utf8(\1)', to be a valid callback in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\farwell\lib\html_entity_decode_utf8.php on line 38
Warning: preg_replace_callback(): Requires argument 2, '_code2utf8(\1)', to be a valid callback in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\farwell\lib\html_entity_decode_utf8.php on line 39
Comme demandé j'ai bien modifié le fichier "html_entity_decode_utf8.php" aux lignes 38 et 39.
Code :
#CMS - CMS Made Simple
#(c)2004-2010 by Ted Kulp (wishy@users.sf.net)
#This project's homepage is: http://www.cmsmadesimple.org
#
# Code copied from http://www.php.net/manual/en/function.html-entity-decode.php
#
#This program is free software; you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation; either version 2 of the License, or
#(at your option) any later version.
#
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#GNU General Public License for more details.
#You should have received a copy of the GNU General Public License
#along with this program; if not, write to the Free Software
#Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
#$Id: html_entity_decode_utf8.php 7396 2011-09-15 12:57:25Z rolf1 $
/**
* @package CMS
*/
/**
* A function to decode utf8 entities in a string
*
* @param string The input string
* @param boolean Should single quotes be converted
* @return string The converted string
*/
function cms_html_entity_decode_utf8( $string, $convert_single_quotes = false )
{
static $trans_tbl;
//replace numeric entities
/** Repère des lignes 38/39 --- cette ligne n'est pas dans le code, juste ici comme repère */
$string = preg_replace_callback('~�*([0-9a-f]+);~ei', '_code2utf8(\1)', $string);
$string = preg_replace_callback('~�*([0-9]+);~e', '_code2utf8(\1)', $string);
//replace literal entities
if (!isset($trans_tbl))
{
$trans_tbl=array();
foreach (get_html_translation_table(HTML_ENTITIES) as $val=>$key)
$trans_tbl[$key] = utf8_encode($val);
}
$decode = strtr($string, $trans_tbl);
if($convert_single_quotes) $decode = str_replace("'", "\'", $decode);
return $decode;
}
/**
* Returns the utf string corresponding to the unicode value (from php.net, courtesy - romans@void.lv)
*
* @ignore
* @access private
* @param int The unicode value
* @return string UTF string
*/
function _code2utf8( $num )
{
if($num < 0) return '';
if($num < 128) return chr($num);
//Removing / Replacing Windows Illegals Characters
if($num < 160)
{
switch ($num)
{
case 128: $num=8364; break;
case 129: $num=160; break; //(Rayo:) #129 using no relevant sign, thus, mapped to the saved-space #160
case 130: $num=8218; break;
case 131: $num=402; break;
case 132: $num=8222; break;
case 133: $num=8230; break;
case 134: $num=8224; break;
case 135: $num=8225; break;
case 136: $num=710; break;
case 137: $num=8240; break;
case 138: $num=352; break;
case 139: $num=8249; break;
case 140: $num=338; break;
case 141: $num=160; break; //(Rayo:) #129 using no relevant sign, thus, mapped to the saved-space #160
case 142: $num=381; break;
case 143: $num=160; break; //(Rayo:) #129 using no relevant sign, thus, mapped to the saved-space #160
case 144: $num=160; break; //(Rayo:) #129 using no relevant sign, thus, mapped to the saved-space #160
case 145: $num=8216; break;
case 146: $num=8217; break;
case 147: $num=8220; break;
case 148: $num=8221; break;
case 149: $num=8226; break;
case 150: $num=8211; break;
case 151: $num=8212; break;
case 152: $num=732; break;
case 153: $num=8482; break;
case 154: $num=353; break;
case 155: $num=8250; break;
case 156: $num=339; break;
case 157: $num=160; break; //(Rayo:) #129 using no relevant sign, thus, mapped to the saved-space #160
case 158: $num=382; break;
case 159: $num=376; break;
}
}
if ($num < 2048) return chr(($num >> 6) + 192) . chr(($num & 63) + 128);
if ($num < 65536) return chr(($num >> 12) + 224) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
if ($num < 2097152) return chr(($num >> 18) + 240) . chr((($num >> 12) & 63) + 128) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
return '';
}
?>
Sauvé le fichier, vider le cache, et même redémarré Easyphp. Mais rien ne change : toujours la même erreur.
Aussi je vois bien les infos dans Administration du site>Informations système, mais je ne sais pas ou aller les modifier.
J'espère me conformer à votre charte, c'est mon premier post et je suis débutant.
Merci de votre aide et bonne soirée à tous.
[Résolu]Warning: preg_replace_callback(): Requires argument 2 -
jce76350 - 16/09/2014
tu es en PHp 5.5.8 et :
preg_replace(): The /e modifier is deprecated, (depuis 5.5.0 : Le modificateur /e est obsolète)
il faut remplacer les lignes d'origine /lib/html_entity_decode_utf8.php
$string = preg_replace('~�*([0-9a-f]+);~ei', '_code2utf8(hexdec("\\1"))', $string);
$string = preg_replace('~�*([0-9]+);~e', '_code2utf8(\\1)', $string);
Par les ligne suivantes
$string = preg_replace('~�*([0-9a-f]+);~i', '_code2utf8(hexdec("\\1"))', $string);
$string = preg_replace('~�*([0-9]+);~', '_code2utf8(\\1)', $string);
pour le moment en simplifiant
il faut aussi modifier
/lib/html_entity_decode_php4.php en ligne 306 et 307
je vais signaler le problème
Sinon
modif à faire (A tester...)
/lib/html_entity_decode_utf8.php
Code :
//replace numeric entities
/*
$string = preg_replace('~�*([0-9a-f]+);~ei', '_code2utf8(hexdec("\\1"))', $string);
$string = preg_replace('~�*([0-9]+);~e', '_code2utf8(\\1)', $string);
*/
$string = preg_replace_callback('~&#x([0-9a-f]+);~i',
function($matches) {
__code_to_utf8($matches[1]);
}, $string);
$string = preg_replace_callback('~&#([0-9]+);~',
function($matches) {
__code_to_utf8($matches[1]);
}, $string);
/lib/html_entity_decode_php4.php
Code :
/*
$return_text = strtr($text_to_convert, $htmlentities_table);
$return_text = preg_replace('~&#x([0-9a-f]+);~ei', 'code_to_utf8(hexdec("\\1"))', $return_text);
$return_text = preg_replace('~&#([0-9]+);~e', 'code_to_utf8("\\1")', $return_text);
return $return_text;
*/
$return_text = strtr($text_to_convert, $htmlentities_table);
$return_text = preg_replace_callback('~&#x([0-9a-f]+);~i',
function($matches) {
__code_to_utf8($matches[1]);
}, $return_text);
$return_text = preg_replace_callback('~&#([0-9]+);~',
function($matches) {
__code_to_utf8($matches[1]);
}, $return_text);
return $return_text;
[Résolu]Warning: preg_replace_callback(): Requires argument 2 -
yake - 16/09/2014
Un tout grand merci. C'est LA solution. J'admire votre connaissance du sujet.
Je clôture. Bonne journée et à bientôt.
ps: Comment indiquer [resolu] dans le titre ? Je ne trouve pas comment modifier.
[Résolu]Warning: preg_replace_callback(): Requires argument 2 -
jce76350 - 16/09/2014
j'ai eu le cas hier soir
sur un PHP 5.5.x
>ps: Comment indiquer [resolu] dans le titre ? Je ne trouve pas comment modifier.
c'est écrit en haut de la page "ATTENTION" :/
Ajoutez [Résolu] au
début du titre de votre 1er message lorsqu'une solution a été trouvée.
[Résolu]Warning: preg_replace_callback(): Requires argument 2 -
jissey - 17/09/2014
Houla! Ça sent la 1.11.12 :mad:
[Résolu]Warning: preg_replace_callback(): Requires argument 2 -
yake - 18/09/2014
Quand j'édite mon message je me positionne dans le titre, mais impossible d'y ajouter [Résolu].
Comment faire ???
Merci.
[Résolu]Warning: preg_replace_callback(): Requires argument 2 -
jce76350 - 18/09/2014
Citation :Quand j'édite mon message je me positionne dans le titre, mais impossible d'y ajouter [Résolu].
Comment faire ???
alors explication c'est ton titre qui est trop long il faut donc en supprimer un partie
si tu mets comme titre [Résolu] Warning: preg_replace_callback()... ce ser Ok
[Résolu]Warning: preg_replace_callback(): Requires argument 2 -
yake - 18/09/2014
Merci, voilà c'est fait. Bonne journée à tous.