note 11314 added to sscanf
| From: | strasbg at ole dot com | Date: | Thu, 15 Feb 2001 16:44:01 +0000 |
| Subject: | note 11314 added to sscanf | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-11105@lists.php.net to get a copy of this message | ||
Hay un error en la funcion sscanf ya que no realiza la lectura de datos segun el formato
especificado. Por ejemplo, consideremos el siguiente codigo:
<?php
// este script es una prueba del scanf
$str="hola;esto;es;una;prueba";
$a="";
$b="";
$c="";
$d="";
$e="";
sscanf($str,"%s;%s;%s;%s;%s",&$a,&$b,&$c,&$d,&$e);
echo $a.$b.$c.$d.$e;
?>
La salida seria la siguiente:
hola;esto;es;una;prueba
Por el contrario si usamos el siguiente
formato:
<?php
// este script es una prueba del scanf
$str="hola ; esto ; es ; una ; prueba";
$a="";
$b="";
$c="";
$d="";
$e="";
sscanf($str,"%s ; %s ; %s ; %s ; %s",&$a,&$b,&$c,&$d,&$e);
echo $a.$b.$c.$d.$e;
?>
la salida es correcta:
holaestoesunaprueba
Se ve que la funcion sólo respeta
el formato si las zonas donde se
indica que comienza una variable
(en el codigo %(tipo_de_variable))
esta aislada, es decir, separada
con espacios del resto de los
caracteres del formato.
Saludos desde cordoba
http://www.php.net/manual/en/function.sscanf.php