- Home
- Categorie
- Coding e Sistemistica
- PHP
- Come estrarre una stringa da un testo?
-
credo di esserci riuscito... ditemi se così va bene!
// Trova e restituisci il link dell'immagine $string = " ".$img; $ini = strpos($string,"src=\""); $ini += strlen("src=\""); $len = strpos($string,"\"",$ini) - $ini; $img = substr($string,$ini,$len); // End
si può migliorare?
-
Certo che si può migliorare, usando le Regular Expressions: lo so che all'inizio sono un po' difficili ma se vuoi diventare un bravo programmatore (in qualsiasi linguaggio) ti consiglio vivamente di impararle...
-
Mmmm... ok, ma non lo so faaaareeee....
Mi aiuti???
-
Hai letto quella pagina di manuale? Che cos'è che non ti è chiaro? Per aiutarti cerca anche "espressioni regolari" o "regular expressions" su Google...
-
Attenzione però: le espressioni regolari sono si un ottimo strumento di pattern ma al contempo impiegano una quantità spropositata di risorse del web server.
Come ogni cosa bisogna saper usare gli strumenti a disposizione con sufficiente raziocinio da capire se v'è la reale necessità di impiegarle.
In questo caso, anche se più semplice, è superflua un espressione regolare tuttavia come suggerisce SEO Italy sono comunque un passo importante da apprendere e, a tal fine, posso suggerirti qualcosa che ho trovato sufficientemente valido in merito all'argomento:
Saluti
-
Se la stringa che ricevi è sempre la stessa, nel senso che l'unica cosa che cambia è l'indirizzo dell'immagine, potesti anche andare avanti con le sole funzioni sulle stringhe, sarebbe certamente più performante in questo caso.. ed eviteresti uno spreco inutile di risorse.
Dico questo perchè a quanto ho capito la ricerca non è estesa ad un intero documento ma ad una piccola porzione..
-
Ciao,
a cosa ti serve dividere la stringa?
Se hai risolto lascia perdere,
ma se vuoi visualizzare delle immagini io faccio diversamente.
Fammi sapere
Ciao da danny1975
-
Ciao a tutti ragazzi
innanzitutto grazie a tutti per essere intervenuti.Ciò che devo estrarre io è tutto ciò che c'è scritto all''interno di src="..." e restituirlo ad una stringa che stamperà i dati come xml.
La funzione in php che ho creato va benissimo, ma mi chiedevo se esisteva il modo di renderla più piccola, più flessibile.
Le espressioni regolari non so proprio utilizzarle, dovrei studiarle bene per capirci qualcosa... ma, a quanto dite, potrebbero essere un pò pesanti.
-
Ok, visto che avevo un po' di tempo (non è vero... ho messo a confronto tre metodi per ottenere il risultato voluto: RegExp, soluzione proposta originariamente da stimart e explode.
I risultati sono qua: http://www.seoitaly.it/tools/regexp.php
Come si può vedere (con 100 stringhe diverse da processare) la RegExp ci mette più o meno il doppio delle altre soluzioni, che sono invece per lo più equivalenti (in termini di tempo di esecuzione).
Ovviamente ci possono essere delle soluzioni ancora più rapide (o compatte, senza perderci troppo tempo la più corta che ho trovato e quella con "explode")
Per quanto riguarda la tua domanda, stimart, più "piccola" è un conto, più "flessibile" (e in questo caso niente ma davvero niente batte le RegExp) è un altro...
Saluti a tutti!
-
Ho aggiunto una funzionalità allo script, adesso si possono inserire il numero di "righe" da processare in input - così vediamo un po' se cambia qualcosa al variare delle dimensioni dell'input...
-
Carissimo SEO
grazie di cuore per la tua risposta e l'interesse.Credo, a questo punto, che il mio codice va più che bene per i miei scopi... però, avere scoperto quelle altre alternative mi stimola a comprendere meglio certi aspetti della programmazione.
Grazie infinite a tutti.
E' sempre bello confrontarsi.