Newsgroup: it.comp.www.php
Titolo: if su stringa

Ciao a tutti, vorrei fare una cosa semplice ma mi sono bloccato:
avendo una stringa di questo tipo
"pippo pluto paperino: 1"
(dove i valori prima dei : possono variare)
vorrei creare un if del tipo
if "dopoiduepunti c'è 1" then echo ok
if "dopoiduepunti c'è 0" then echo no
grazie mille per i suggerimenti!

 no
list($chiave, $valore) = explode(':', $stringa, 1);
if (trim($valore) == 1) { ... }
Purtroppo, tornando un array, non puoi fare tutto su una riga. Se fosse 
js 
(e forse con PHP 5.4) potresti fare
if (trim(explode(':', $stringa, 1)[1]) == '1') { ... }
Ma, detto tra noi, sarebbe anche molto meno leggibile.
Bye.


grazie per la risposta, stranamente nessun if mi da esito.
nella fattispecie:
$stringa = test pippo: 1;
                     list($chiave, $valore) = explode(':', $stringa, 1);
                     if (trim($valore) == 1) {
                     echo "<img src=\"ok.png\" width=\"20\" 
height=\"20\"></br>";
                         }
  if (trim($valore) == 0) {
                     echo "<img src=\"no.png\" width=\"20\" 
height=\"20\"></br>";
                         }
però non mi restituisce nè il primo nè il secondo. ovviamente le 
immagini sono ok e leggibili ed ho provato a leggerle fuori if.

writethem <""poiuuuu\"@the_google_mail(writethem).com"> wrote:
hai provato con 
if (trim($valore) == "1") {
Max
-- 
http://www.maxori.it
L'Arte � la capacit� di fare cose di nessun valore
e di riuscire a venderle
F. Zappa

 list($chiave, $valore) = explode(':', $stringa, 1);
Togli l'ultimo parametro, scrivi cioe': explode(':', $stringa);
Ciao.
-- 
Pubblicita' regresso: 
http://www.ferrero.org
** Per scrivermi in mail, sostituire nutella con ferrero...
** To contact me by email, change nutella to ferrero...

 Togli l'ultimo parametro, scrivi cioe': explode(':', $stringa);
Yep, errore mio.
Piuttosto che toglierlo, mettici 2 invece di 1, cosi` in $valore avrai 
tutta la seconda parte della stringa, anche se contiene altri duepunti.
Bye.

 tutta la seconda parte della stringa, anche se contiene altri duepunti.
purtroppo ho provato di tutto ma niente.
Però mi sorge un dubbio: la stringa che carico contiene questa frase: 
"(1=si 0=no)"
forse danno fastidio le parentesi?

 forse danno fastidio le parentesi?
Forse in questa stringa non ci sono i due punti?
Facciamo che posti il codice reale con la vera stringa che devi analizzare?


 Facciamo che posti il codice reale con la vera stringa che devi analizzare?
Troppo facile, caro mio, dovrai cavargli la verità con le tenaglie 
mentre lui ti resiste.


Carissimo, non custodisco alcun dogma, puoi star tranquillo.
Non ho postato la reale stringa semplicemente, oibò, perchè la stringa 
viene generata dinamicamente dalla lettura di un file di testo creato a 
sua volta da degli script di analisi log su di un server linux.
La stringa dice pressappoco:
Valore (1=si 0=no): 1
oppure 0.
Ovviamente ci vedo, quindi ci sono i :. Ed ovviamente faccio apparire 
l'intero contenuto della stringa a video, quindi essa non è null o 
illeggibile.

 La stringa dice pressappoco:
"pressappoco" significa appunto che non vuoi indicare un esempio reale 
del problema, cosa che invece ti era stata chiesta.
La mia ironia era rivolta al modo difficile, per chi legge, di porre le 
richieste di aiuto.
In via generale quando si espone un problema si deve essere in grado di 
farlo riprodurre. Il solo fatto di creare un esempio minimo potrebbe 
evidenzarti il problema.

 evidenzarti il problema.
Ora scherzi a parte e pace pace di Gesù (cazz.. non siamo ancora su 
it.religioni, mi confondo sempre), la mia ironia, invece, era rivolta al 
fatto che tu ancora non hai prodotto una risposta utile, ma semplici 
regole comportamentali che, tra parentesi, sono state rispettate.
Ho quotato male? No
Non ho cercato con google prima di chiedere? No
Ho fatto crosspost o ho avuto altri vizi di forma? No
Ho posto una domanda erroneamente? No, ti ho spiegato anche perchè la 
stringa non potevo portartela, semplicemente perchè cambia di volta in 
volta.
In genere, personalmente, non amo i saccenti che si disinteressano 
completamente del problema e lurkano un newsgroup solo alla ricerca di 
un'uscita moralizzante di richiamo sulle sacre netiquette dello spazio 
messoci a disposizione.
Ma ovviamente non parlo di te. Il mio è un discorso più che altro 
generale. Anche perchè non ho più 15 anni da diversi 15 anni e in genere 
non riesco a seguire i flame. Quindi non mal interpretare questa 
risposta, non voglio scatenare un flame. Non ho il tempo di seguirlo. 
Inoltre lo trovo abbastanza *vintage*, se pensi che il primo flame fu 
fatto penso intorno al 1975 da un certo sconosciuto di nome Linus Torvald.
Ricapitolando, se vuoi apportare un contributo reale alla discussione, 
ti anticipo i ringraziamenti.
Se non vuoi apportare un contributo reale alla discussione ma vuoi 
parlare solo di netiquette, ti ringrazio lo stesso perchè sono convinto 
che nella tua profonda conoscenza dell'essere umano avrai certamente 
inteso che non è gradito per il semplice motivo di non aver mancato.
Grazie. :)

 ti anticipo i ringraziamenti.
Certo: incolla un esempio che riproduca il problema.
Codice, risultato atteso e risultato ottenuto invece.
Se avessi messo un esempio minimo del problema non avresti ancora la 
discussione in ballo da una settimana.
Da me la stringa "Valore (1=si 0=no): 1" viene gestita correttamente; le 
parentesi non influiscono su explode(':', ) .
Prego.

 a sua volta da degli script di analisi log su di un server linux.
Il poster a cui rispondi non lo leggo, non so perch�... per� purtroppo
devo concordare sul fatto che spesso le richieste di aiuto ometton0
informazioni che sembrano superflue ed invece sono fondamentali
per risolvere il problema.
Nel tuo caso, un copy&paste della stringa incriminata potrebbe aiutare
a capire perch� il codice non funziona.
Ci vorrebbe il DrKonqi del PHP...
-- 
ValeRyo
XT600 "Katoki Pajama" - 
http://www.slimmit.com/go.asp?7Y9
GamerTag: 
http://card.mygamercard.net/IT/nxe/ValeRyo76.png
 

 Il poster a cui rispondi non lo leggo, non so perché
-Houston, mi hai plonkato?-

 $stringa = test pippo: 1;
Ma un tempo non si scriveva:
$stringa = "test pippo: 1";
??
-- 
Sandro kensan 
www.kensan.it
 geek site

dunque...
  $file = '/srv/www/htdocs/info.txt';
                 if( file_exists( $file ) && is_readable( $file ) )
                 {
                     echo readLine($file, 2);
                     echo "</br>";
                     $stringa = $readLine($file, 2);
                     list($chiave, $valore) = explode(':', $stringa);
                     if (trim($valore) == 1) {
                     echo "ok</br>";
                         }
                     if (trim($valore) == 0) {
                     echo "no</br>";
                         }
                 }
                 else
                 {
                     echo "Cannot read from $file";
                 }
ecco qui...


dimenticavo, il print restituisce
"Check 32 (1=si 0=no): 1"
leggendo correttamente il file, ma l'output non prende nulla, rimane blank

                     $stringa = $readLine($file, 2);
Questo $readLine non mi convince molto :-)



eccola!
function readLine($file, $line_num, $delimiter="\n")
{
$i = 1;
     $fp = fopen( $file, 'r' );
     while ( !feof ( $fp) )
     {
         $buffer = stream_get_line( $fp, 1024, $delimiter );
         if( $i == $line_num )
         {
             return $buffer;
         }
         $i++;
         $buffer = '';
     }
     return false;
}

On 31 Ago, 15:35, writethem <""poiuuuu

  $stringa = $readLine($file, 2);
sta cosa che è????
non dovrebbe essere :   $stringa = readLine($file, 2);
NB se attivassi i notice in fase di sviluppo l'avresti vista in 2
secondi
Ciao

 }
probabilmente non lo convince la "$" quando richiami la funzione readLine… ;)


funge, grazie a tutti.


gi�, eccolo qui! :)
grazie!



:O una settimana per scoprire un errore del genere… spero che tu ti 
faccia pagare a ore.
scherzo :D

 funge, grazie a tutti.
Visto che bisognava postare il codice?
A volte cose del genere sfuggono... magari quando l'hai scritto
stavi pensando ad una variabile e poi hai usato la funzione.



no figurati, è che proprio non sono un softwarista. mi occupo ovviamente 
di tutt'altro.