ciao vale2
prova questo script
PHP:
<?php
$stringa = 'abc';
$cerca = 'a';
$pos = strpos($stringa, $cerca);
if($pos== FALSE){
echo "carattere non trovato<br>";
}else{
echo "carattere trovato<br>";
}
if($pos=== FALSE){
echo "carattere non trovato<br>";
}else{
echo "carattere trovato<br>";
}
?>
così vedi perche è meglio usare ===
Ciao borgo italia,
da quello che ho letto e provato l'operatore di assegnazione == considera il primo carattere della sottostringa da cercare nella stringa come 0
e stampa "carattere non trovato" . Se invece di 'a' avrei cercato 'b' lo trova con == e con ===
PHP:
<?php
$stringa = 'abc';
$cerca = 'b';
$pos = strpos($stringa, $cerca);
if($pos == FALSE){
echo "carattere $cerca non trovato<br>";
}else{
echo "carattere $cerca trovato<br>";
echo "Si trova alla posizione $pos<br>";
}
if($pos === FALSE){
echo "carattere $cerca non trovato<br>";
}else{
echo "carattere $cerca trovato<br>";
echo "Si trova alla posizione $pos<br>";
}
?>
il risultato del tuo esempio:
carattere a non trovato == 'a' primo carattere non trovato 0
carattere a trovato === 'a' primo carattere trovato 0
Si trova alla posizione 0
l'altro:
carattere b trovato
Si trova alla posizione 1
carattere b trovato
Si trova alla posizione 1
questa comparazione vale solo con strpos, == non è utilizzabile se la sottostringa da cercare contiene più di un carattere ma solo con ===?
in ASP lo avrei scritto cosi:
Codice:
<%
dim stringa, cerca
stringa = "abcdefg"
cerca = "abc"
posizione = InStr(stringa,cerca)
if (posizione) > 0 then
Response.Write("carattere " &cerca& " trovato<br>")
Response.Write("Si trova alla posizione "&posizione)
else
Response.Write("carattere " &cerca& " non trovato")
end if
%>
Risultato:
carattere abc trovato
Si trova alla posizione 1
in asp il primo carattere di una sottostringa è 1 e non c'è bisogno di una dichiarazione FALSE, il risultato è 0 se non viene trovata corrispondenza.
Voglio approfondire PHP.
Grazie, un saluto Valeria. :byebye: