A parte che il codice mi sembra molto mal fatto....qual'è lo scopo di questo snip?
Cosa devi fare? Cosa devi controllare?
![]()
A parte che il codice mi sembra molto mal fatto....qual'è lo scopo di questo snip?
Cosa devi fare? Cosa devi controllare?
![]()
Hai ragione, funziona perchè php fa in automatico il type casting per eseguire il confronto, ma è una cosa da evitare.Originariamente inviato da moneta173
Dove ho scritto // Il codice funziona ... funziona °-°
Praticamente deve scrivere (con fopen, fwrite) su una pagina e scrive correttamente...
Il problema è il ciclo for... cioè io devo, usando fopen e fwrite, scrivere su una pagina cio che viene inserito in una textarea.
Ho usato il ciclo for per controllare ogni riga della textarea e fin qui ci siamo, scrive correttamente sulla pagina.
Il problema è che, dopo aver scritto sulla pagina di destinazione, devo stampare nella pagina corrente il messaggio di OK, ma non posso metterlo all'interno del for, se no lo stamperebbe tante volte.
Allo stesso tempo, però, devo stamparlo solo se gli elementi dell'array rispettano le caratteristiche degli if nel for
Prima di usare il for funzionava, è da quando l'ho inserito che mi sto perdendo un po' (anzi tanto... xD)
Allora devi:
1. settare il valore di $true=true;
2. fare il ciclo for e (al suo interno) se c'è un dato non corretto --> $true=false (se non ci sono errori non toccare $true)
3. dopo il ciclo for, $true è rimasto a true solo se non ci sono errori
Allora ho fatto cosi:
fuori dal ciclo for ho scritto $true = true;
poi -> if(substr_count($final_links[$x], 'http://') != 1){
$true = false;
}
e infine -> else{
$true = false;
}
Non funziona ;(
1. non è che prendendo i dati da una textarea ti ritrovi alla fine una riga vuota?
2. ti consiglio strpos() invece di substr_count() se vuoi verificare che la tua stringa inizi con "http://" altrimenti potrebbe essere preceduta da altri caratteri ed il confronto sarebbe comunque positivo
3. non è meglio fare prima la verifica e solo dopo inserire tutto nel tuo file
Grazie per strpos() ora sostituisco
Comunque gli if funzionano, cioè il codice scrive nella pagina di destinazione solo se la textarea rispetta le condizioni
Il problema è che io devo scrivere il messaggio di ok e questo è fuori dal for (perchè se lo mettessi dentro funzionerebbe, solo che lo scriverebbe tante volte)
EDIT
Ho letto strpos() e secondo me quella che uso va bene lo stesso...
Hemm...
for ($x = 0; $x <= count($final_links); $x++) cosa fa?
Parte da 0 e cicla finchè x è <= dimensione di finallinks.
Se l'array è di un elemento, il primo ciclo parte con x = 0, esegue i controlli e fa quel che deve fare.
Al secondo giro x = 1, che ancora è <= dimensione di finalinks, però finalinks[1] non ha valore (l'array è di tipo numerico e il primo indice è 0...) quindi i controlli falliscono e ritorna false...
![]()
Ok, ho capito l'errore, ma come potrei risolvere?
Codice PHP:$check = false;
for ($x = 0; $x <= count($final_links); $x++) {
if (!empty($final_links[$x]) && substr_count($final_links[$x], 'http://') > 0) {
$check = true;
// Fai qualcosa
}
}
if ($check) {
echo "OK";
} else {
echo "KO";
}
"Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)