Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Motorola razr fold, dalla conchiglia al formato a libro. La recensione
Motorola razr fold, dalla conchiglia al formato a libro. La recensione
Abbiamo provato Motorola razr fold, il pieghevole a libro con display interno LTPO da 8,09 pollici, Snapdragon 8 Gen 5 e batteria da 6000 mAh in 243 grammi. Pennino e custodia sopno già nella confezione, per un foldable che si caratterizza per il pannello luminoso, l'autonomia ottima per la categoria e le fotocamere coerenti e ben sfruttabili. Il listino è di 1999 euro, ma in vendita si trova già a molto meno
Recensione Google Pixel Watch 5: sembra lo stesso, ma al polso la differenza si sente
Recensione Google Pixel Watch 5: sembra lo stesso, ma al polso la differenza si sente
Google Pixel Watch 5 ha affinato una formula già convincente con hardware più veloce, Gemini offline e nuovi strumenti per sport e benessere. Abbiamo provato la versione LTE da 41 mm, comoda anche di notte e ben proporzionata sui polsi piccoli. Il design resta un punto di forza, ma l'autonomia premia ancora il 45 mm e alcune funzioni AI non sono disponibili in Italia: ecco che cosa cambia rispetto a Watch 4 e quale formato conviene scegliere oggi
Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo
Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo
Politica, accademia e industria a confronto su mercato unico, sicurezza e competitività. Nei laboratori di Vimercate, Nokia ha mostrato le nuove generazioni di chip ottici e i test che ogni prodotto deve superare prima di arrivare sul mercato
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 09-09-2008, 13:48   #1
PhoEniX-VooDoo
Bannato
 
L'Avatar di PhoEniX-VooDoo
 
Iscritto dal: Nov 2000
Messaggi: 15500
[PHP] strstr() non funziona come dovrebbe

Ho un problema con la funzione strstr() la quale come saprete confronta due stringhe e restituisce la prima dopo il valore di confronto della seconda.


In sostanza, io ho in IMPUT questo file txt (è una "demo")

Quote:
OPEN instruction-OPEN
STORE instruction-STORE
OPEN instruction-OPEN
OPEN instruction-OPEN
ed ho bisogno di visualizzare ciò che segue 'OPEN' per esempio, quindi faccio cosi:

Codice PHP:
$var3 = file("testo.txt");

foreach (
$var3 as &$value) {
    
    
$res = stristr($value, 'OPEN');
    if (
$res <> ''){
    
    print 
"<br>";     
    print 
$res;
        
    }
    
} 

però ottengo in OUTPUT


Quote:
OPEN instruction-OPEN
OPEN instruction-OPEN
OPEN instruction-OPEN
mentre io mi aspetto (e voglio) solo "instruction-OPEN"


what's wrong?
PhoEniX-VooDoo è offline   Rispondi citando il messaggio o parte di esso
Old 09-09-2008, 18:29   #2
matteo micanti
Junior Member
 
L'Avatar di matteo micanti
 
Iscritto dal: Aug 2008
Messaggi: 25
Il problema è che stristr() va verso destra, per cui prenderebbe i caratteri successivi a "open", mentre a te servono quelli precedenti.

Che io sappia non esiste una funzione per quello che vuoi fare, devi costruirne una personalizzata.

Puoi usare diversi modi, le vie più semplice che mi vengono in mente sono substr() e il rovesciare le stringa di partenza, cercare la stringa "open" al contrario e visualizzare il risultato rovesciandolo nuovamente.

Tutto questo con una combinazione di strrev().

Qualcosa del genere:

Codice PHP:
$righe = file ( 'testo.txt' );

foreach ( 
$righe as $riga ) {
    
    
$riga = strrev ( $riga );

    if (   
$res = stristr ( $riga , strrev( 'open' ) ) )
        echo 
'<br />' , strrev( $res );

} 
Altrimenti puoi usare un' espressione regolare.

Ciao!

Ultima modifica di matteo micanti : 01-08-2009 alle 23:03.
matteo micanti è offline   Rispondi citando il messaggio o parte di esso
Old 09-09-2008, 18:43   #3
PhoEniX-VooDoo
Bannato
 
L'Avatar di PhoEniX-VooDoo
 
Iscritto dal: Nov 2000
Messaggi: 15500
grazie del intervento prima di tutto.

ad ogni modo, a me i caratteri che servono sono infatti successivi a OPEN, in pratica io gli dico (usiamo i valori e non le variabili per chiarezza):

Codice PHP:
stristr('OPEN instruction-OPEN', 'OPEN'); 
Quindi cosa mi aspetto, che lui trovi alla posizione 0-1-2-3 'OPEN' e mi restituisca ciò che segue, ovvero 'instruction-OPEN'
PhoEniX-VooDoo è offline   Rispondi citando il messaggio o parte di esso
Old 09-09-2008, 19:14   #4
matteo micanti
Junior Member
 
L'Avatar di matteo micanti
 
Iscritto dal: Aug 2008
Messaggi: 25
Ahhh, io avevo capito al contrario, che dovevi estrarre "OPEN instruction"
Bhè, strripos() la sua funzione la svolge correttamente, infatti prende la parte successiva alla stringa cercata includendo quest'ultima.
A questo punto ti basta usare substr() per prendere i caratteri successivi al 5° (dopo O,P,E,N,SPAZIO) dalla stringa restituita da strripos() (che comunque serve visto che devi prendere solo i valori che contengono OPEN escludendo quelli con STORE [anche se potrebbe essere sostituita con altre funzioni])

Codice PHP:
$righe = file ( 'testo.txt' );

foreach ( 
$righe as $riga ) {

    if (   
$res = substr ( stristr ( $riga ,  'OPEN' ) , 5 ) )
       
       echo 
'<br />' , $res;

} 
O anche (è la stessa cosa) i successivi al 4° utilizzando ltrim() per togliere lo spazio rimanente a sinistra:

Codice PHP:
$righe = file ( 'testo.txt' );

foreach ( 
$righe as $riga ) {

    if (   
$res = substr ( stristr ( $riga ,  'OPEN' ) , 4 ) )
       
       echo 
'<br />' , ltrim ( $res );

} 
Ciao!

Ultima modifica di matteo micanti : 09-09-2008 alle 19:21.
matteo micanti è offline   Rispondi citando il messaggio o parte di esso
Old 09-09-2008, 19:23   #5
PhoEniX-VooDoo
Bannato
 
L'Avatar di PhoEniX-VooDoo
 
Iscritto dal: Nov 2000
Messaggi: 15500
grazie, capito, così dovrebbe funzionare

pero sulla guida ufficiale non dice che ritorna anche la stringa di confronto, ma solo quello che segue...

Codice PHP:
<?php
$email 
= '[email protected]';
$domain = strstr($email, '@');
echo 
$domain; // prints @example.com
?>
> http://ch2.php.net/manual/it/function.strstr.php


per quello non capivo...
PhoEniX-VooDoo è offline   Rispondi citando il messaggio o parte di esso
Old 09-09-2008, 19:31   #6
matteo micanti
Junior Member
 
L'Avatar di matteo micanti
 
Iscritto dal: Aug 2008
Messaggi: 25
Quote:
Restituisce il contenuto di haystack dalla prima occorrenza di needle fino alla fine.
Se uno legge attentamente è chiaro, e dall'esempio si capisce... ma effettivamente sì, può essere un'pò ambiguo

Avrebbero dovuto specificare meglio.

Spero di essere stato utile comunque

Ciao!

Ultima modifica di matteo micanti : 11-09-2008 alle 18:49.
matteo micanti è offline   Rispondi citando il messaggio o parte di esso
Old 09-09-2008, 19:56   #7
vizzz
Senior Member
 
L'Avatar di vizzz
 
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
l'ideale è utilizzare un espressione regolare
http://it2.php.net/regex
__________________
ho concluso con: kvegeta, doctordb, Leland Gaunt.
vizzz è offline   Rispondi citando il messaggio o parte di esso
Old 09-09-2008, 20:25   #8
matteo micanti
Junior Member
 
L'Avatar di matteo micanti
 
Iscritto dal: Aug 2008
Messaggi: 25
Sì, è più semplice...ma in termini di prestazioni non so se converebbe molto di più, in particolare con ereg..
In questo caso, dove l'uso delle espressioni regolari non è strettamente necessario, direi di evitarlo
Ciao!

Ultima modifica di matteo micanti : 09-09-2008 alle 20:28.
matteo micanti è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Motorola razr fold, dalla conchiglia al formato a libro. La recensione Motorola razr fold, dalla conchiglia al formato ...
Recensione Google Pixel Watch 5: sembra lo stesso, ma al polso la differenza si sente Recensione Google Pixel Watch 5: sembra lo stess...
Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo Nokia Innovation Day 2026: la sovranità e...
In sella alla Fiido Nomads Pro: e-bike con motore centrale da 100 Nm per il divertimento a 360 gradi In sella alla Fiido Nomads Pro: e-bike con motor...
ASUS Zenbook 14 (UX3480AA): tanta autonomia con uno chassis bello e robusto ASUS Zenbook 14 (UX3480AA): tanta autonomia con ...
Starship: SpaceX potrebbe tentare di rec...
Federico Veronesi vince i Wildlife Photo...
Samsung Galaxy bloccati dopo l'aggiornam...
L'UE prolunga il periodo di test del pro...
Offerte Amazon di oggi: e-bike da 616€, ...
La missione cino-europea ESA Smile ha in...
Cisco sulle tracce dell’IA nei malware: ...
Nuovo Codice della strada: stop alla PEC...
Blue Origin Constellation Park: un nuovo...
E-bike da 615€ su Amazon: Bodywel F20PRO...
Windows 11 24H2, stop al supporto per Ho...
Gemini 4 Argon disponibile per tutti: co...
Sony avrebbe chiuso Overdrive, lo store ...
Abbiamo scattato con OPPO Find X10 Pro M...
Fino a 21 miliardi per i chip americani:...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 22:09.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v