PHP 4.0 Bug #9302 Updated: Fallo en la funcion sscanf
| From: | strasbg at ole dot com | Date: | Mon, 19 Feb 2001 08:04:39 +0000 |
| Subject: | PHP 4.0 Bug #9302 Updated: Fallo en la funcion sscanf | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-46868@lists.php.net to get a copy of this message | ||
ID: 9302
User Update by: strasbg@ole.com
Old-Status: Feedback
Status: Open
Bug Type: Strings related
Description: Fallo en la funcion sscanf
That's an error in function sscanf. The next code don´t works properly:
<?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;
?>
the ouput would be:
hola;esto;es;una;prueba
If we use the next code, output would be correct:
<?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;
?>
And the output would be:
holaestoesunaprueba
the function sscanf is unable to read the string under an especified format.
PD: When a bug report's section at your site written in Spanish??? It isn't so difficult,
jani.
Previous Comments:
---------------------------------------------------------------------------
[2001-02-18 16:29:33] sniper@php.net
Use english ONLY when submitting bug reports.
--Jani
---------------------------------------------------------------------------
[2001-02-16 11:13:03] 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.
He realizado varias pruebas de lectura bajo
formatos especificos y no consigo que
la funcion responda segun las especificaciones.
Saludos desde cordoba
---------------------------------------------------------------------------
Full Bug description available at: http://bugs.php.net/?id=9302