lorsque j'essaie de déserialiser un array dont une colonne une simple quote ' dans une chaine de caractère, j'ai le droit à un beau :
Notice: unserialize(): Error at offset 2396 of 6336 bytes in c:\program files\easyphp1-8\www\importxml.php on line 14
j'ai alors avant de sérialiser, remplacer tous les simples quotes ' par un | ( ) comme ca lorsque je désiaralise, je n'ai plus d'erreur. Apres la serailisation, je reremplace les | par des simples quotes ( )
En résumé :
$tab_resultats[$cpt_bien]["descriptif"] = strtr($buffer, "'", "|" ); <input type='hidden' name='import' value='".serialize($tab_resultats)."'>
je submite mon tableau à double dimension
$data=unserialize($_POST['import']); |
Maintenant, je viens de m'apercevoir que lorsque mon descriptif contient un retour chariot, j'ai aussi le droit à un erreur offset ?
Que puis je faire ?
Y a - il autre chose que ' et le retour chariot qui pose souci ?
J'utilise PHP4 et je ne peux pas upgrader en php5
S'il n'y a pas d'autre caracteres qui pose des soucis, je pourrais peut etre faire la meme chose :
remplacer un caractère spécial comme par exemple # et puis apres le reremplacer apres la désérialisation. Quand pensez vous ?
Quel est le code retour charriot ?
strtr($buffer, <br>, "#" ); ou $buffer = strtr($buffer, eval("<br>", "#" ); ne fonctionnent pas
Message édité par weed le 19-09-2005 à 22:43:07