|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 | ||
|
Bannato
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:
Codice PHP:
però ottengo in OUTPUT Quote:
what's wrong? |
||
|
|
|
|
|
#2 |
|
Junior Member
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:
Ciao! Ultima modifica di matteo micanti : 01-08-2009 alle 23:03. |
|
|
|
|
|
#3 |
|
Bannato
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:
|
|
|
|
|
|
#4 |
|
Junior Member
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:
Codice PHP:
Ultima modifica di matteo micanti : 09-09-2008 alle 19:21. |
|
|
|
|
|
#5 |
|
Bannato
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:
per quello non capivo... |
|
|
|
|
|
#6 | |
|
Junior Member
Iscritto dal: Aug 2008
Messaggi: 25
|
Quote:
Avrebbero dovuto specificare meglio. Spero di essere stato utile comunque Ciao! Ultima modifica di matteo micanti : 11-09-2008 alle 18:49. |
|
|
|
|
|
|
#7 |
|
Senior Member
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.
|
|
|
|
|
|
#8 |
|
Junior Member
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. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:36.











ho concluso con: kvegeta, doctordb, Leland Gaunt.








