note 11314 deleted from function.sscanf by didou
| From: | didou@php.net | Date: | Wed, 21 May 2003 16:38:38 +0000 |
| Subject: | note 11314 deleted from function.sscanf by didou | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-48771@lists.php.net to get a copy of this message | ||
Note Submitter: strasbg@ole.com
----
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