Autor | Zpráva | ||
---|---|---|---|
Jiří Krutý Profil |
#1 · Zasláno: 30. 10. 2012, 10:18:01
Zdravím všechny, kdo mi mohou pomoci.
Nainstaloval jsem si na web script v php. Jak jsem později zjistil, bylo to psáno ve starším kódu php a stránky nějaké chyby. Některé už jsem odstranil, ale zatím jsem nepřišel co tady s tímto. Poradí někdo? Díky předem chyba je Warning: strlen() expects parameter 1 to be string, array given in /data/web/virtuals/28967/virtual/www/inc/libs/plugins/modifier.myescape.php on line 28 s kód je takový { if (strlen($string) > 20) { $string = str_replace('<SC', '<SC', $string); $string = str_replace('<sC', '<sC', $string); $string = str_replace('<Sc', '<Sc', $string); $string = str_replace('<sc', '<sc', $string); } return $string; } |
||
Prochy Profil |
#2 · Zasláno: 30. 10. 2012, 10:22:00
Dyť ti to hází ta chyba, píše ti to, že mu předáváš pole, ale ve funkci strlen() musí být string.
|
||
peta Profil |
Zkusim to tez trosku prelozit...
http://cz2.php.net/function.str_replace mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] ) str_replace('<SC', '<SC', $string); '<SC' - typu string $string - z uvedeneho kodu nelze urcit typ promenne, php chyba rika, ze je to array "expects parameter 1 to be string, array given" - ocekavam 1 parametr typu string, dostal jsem ale array |
||
Jiří Krutý Profil |
#4 · Zasláno: 30. 10. 2012, 10:48:59
peta:
Podle toho co jsem se dočetl o této funkci, tak je to dáno nekompatibilitou nové verze php se staršími verzemi. Jak to tedy opravit? |
||
panther Profil |
#5 · Zasláno: 30. 10. 2012, 10:52:52
Jiří Krutý:
„Podle toho co jsem se dočetl o této funkci“ kde ses dočetl ,jakou nekompatibilitou? Už tu padlo dvakrát a píše ti to i to varování, že jí předáváš jako paramatr pole, ale funkce očekává string. Co na tom nechápeš? |
||
Prochy Profil |
Jiří Krutý:
Ukaž část kódu, kde vznikne $string až do části, kterou si zde ukázal.
|
||
Jiří Krutý Profil |
Prochy:
<?php /** * Smarty plugin * @package Smarty * @subpackage plugins */ /** * Smarty cat modifier plugin * * Type: modifier<br> * Name: cat<br> * Date: Feb 24, 2003 * Purpose: catenate a value to a variable * Input: string to catenate * Example: {$var|cat:"foo"} * @link http://smarty.php.net/manual/en/language.modifier.cat.php cat * (Smarty online manual) * @author Monte Ohrt <monte@ispi.net> * @version 1.0 * @param string * @param string * @return string */ function smarty_modifier_myescape($string) { if (strlen($string) > 20) { $string = str_replace('<SC', '<SC', $string); $string = str_replace('<sC', '<sC', $string); $string = str_replace('<Sc', '<Sc', $string); $string = str_replace('<sc', '<sc', $string); } return $string; } /* vim: set expandtab: */ ?> |
||
panther Profil |
#8 · Zasláno: 30. 10. 2012, 10:59:28
Jiří Krutý:
a proměnná, nad kteoru voláš modifikátor nebo funkci smarty_modifier_myescape obsahuje co? Odkud se bere? Z této definice funkce v PHP nic zjistit nejde.
|
||
Jiří Krutý Profil |
#9 · Zasláno: 30. 10. 2012, 11:09:38 · Upravil/a: Jiří Krutý
panther:
hledám to Jiří Krutý: Já to v tom kódu nemůžu nikde najít, jak to můžu nejrychleji zjistit? Není to jen test na počet znaků? Jiří Krutý: Já to opravdu nemůžu najít. Chybu to hází při registraci uživatele a pak i při prohlížení členské sekce, ale ne ve všech případech. Jak to můžu najít? |
||
peta Profil |
#10 · Zasláno: 30. 10. 2012, 15:56:24
ja ti poradim :)
function smarty_modifier_myescape($string) { function smarty_modifier_myescape($string) { var_dump($string); // a kdyz to vypise array, tak to mas chybne |
||
Časová prodleva: 11 let
|
0