Carattere fantasma in php

giuseppeII

Nuovo Utente
23 Giu 2013
1
0
0
Ho in piccolo, si fa per dire, problema con le stringhe in php, si tratta di questo:
mettiamo di avere una stringa $stringa='stringa' , se tronchiamo, in qualsiasi modo, l'ultimo carattere otteniamo string. Se però andiamo ad estrarre l'ultimo carattere di questa nuova stringa invece di ottenere g come ci si aspettava si ottiene una stringa "fantasma", ovvero niente.
Se altresì a questa nuova stringa ne concateniamo un'altra, per esempio "string + ona" otteniamo stringona, ma se andiamo ad estrarre gli ultimi quattro caratteri otteniamo ona, ovvero tre caratteri preceduti, si presuppone, dal carattere iniziale "fantasma".
Sbaglio io? Sara un bug del php? Comunque sia mi sta creando non pochi fastidiosi problemi.
Ringrazio quanti vogliano generosamente aiutarmi ad uscire fuori da questo problema.
Giuseppe
 
ciao
Sara un bug del php?
estremamente difficile.

posta il codice che usi per fare quello che hai detto o dai un occhio a questo
PHP:
<?php
$stringa='stringa';
var_dump($stringa); echo " origine<br><br>";

$stringa= substr($stringa, 0, (strlen($stringa)-1));//tolgo a
var_dump($stringa); echo " tolta 'a'<br>";
$stringa= substr($stringa, 0, (strlen($stringa)-1));//tolgo anche g
var_dump($stringa); echo " tolta anche 'g'<br><br>";

$stringa.="ga";//rimetto ga
$ona="ona";
var_dump($stringa, $ona); echo " le due stringhe<br>";
$stringa= substr($stringa, 0, (strlen($stringa)-1));//tolgo a
var_dump($stringa); echo " tolta 'a'<br>";
$stringa.=$ona;
var_dump($stringa); echo " stringa concatenata<br>";
$stringa= substr($stringa, 0, -(strlen($ona)));//tolgo ona
var_dump($stringa); echo " tolto 'ona'<br><br>";

$stringa.="a";//rimetto al 'a'
$ona="ona";
var_dump($stringa, $ona); echo " le due stringhe<br>";
$stringa= substr($stringa, 0, (strlen($stringa)-1));//tolgo a
var_dump($stringa); echo " tolta 'a'<br>";
$f=strlen($stringa);//da calcolare prima del concatenamento
$stringa.=$ona;
var_dump($stringa); echo " stringa concatenata<br>";
$stringa= substr($stringa, $f, strlen($ona));//tolgo stringa
var_dump($stringa); echo " tolto 'string'<br><br>";
?>
 
Ultima modifica:

Discussioni simili