|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Sep 2002
Città: Monza
Messaggi: 598
|
[php] estrapolare un messaggio da una stringa
ciao amici,
sto guardando le funzioni explode e similari, però nn riesco a trovare quella che fa al caso mio. data la stringa: search?client=opera&rls=it&q=%22scuola+media%22+%22scuola%22+%22dipartimento+fisica%22+-centro+-%22seconda+elementare%22&sourceid=opera&ie=utf-8&oe=utf-8 vorrei catturare da: &q= fino al successivo & Alla fine dovrei catturare: "scuola media" (come frase) "scuola" "dipartimento fisica" -centro -"seconda elementare" Qualcuno ha idee in merito ?
__________________
Nunc est bibendum Ultima modifica di gaglioppo : 10-09-2005 alle 14:42. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Scusa, ma se fai explode con parametro la "&" ?
Poi per ogni stringa ottenuta cerchi nelle prime due lettere "q="...se lo trovi lo togli e poi sostituisci tutti i %22 ed i + con degli spazi... Dopo fai explode sullo spazio... |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Sep 2002
Città: Monza
Messaggi: 598
|
ma cosi' otterrei:
"scuola" "media" "scuola" "dipartimento" "fisica" "-centro" "-seconda" "elementare" senza quindi considerare le frasi "scuola media" e "-seconda elementare", dove la negazione nega sia "seconda" che "elementare" Non sono ancora riuscito a trovare una soluzione
__________________
Nunc est bibendum |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Hai ragione...allora non sostituire %22 con gli spazi, ma sostituisci solo i + con gli spazi...edopo fai explode su %22 e scarta le stringhe formate dai soli spazi..
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Sep 2002
Città: Monza
Messaggi: 598
|
e il segno meno (-) come lo gestisco?
%22scuola+media%22+%22scuola%22+%22dipartimento+fisica%22+-centro+-%22seconda+elementare%22 diventa: %22scuola media%22 %22scuola%22 %22dipartimento fisica%22 -centro -%22seconda elementare%22 che diventa: scuola media scuola dipartimento fisica -centro - seconda elementare e quel meno dopo centro dovrebbe stare con "seconda elementare"
__________________
Nunc est bibendum |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quando il - è staccato diventa un problema...credo che ti convenga farti una procedura di scansione carattere per carattere...
Ad esempio: se trovo un meno: cerco il primo carattere diverso dallo spazio, se è un %22 (a questo punti ti conviene sostituirlo con un doppio apice) allora la parola è lunga fino al prossimo %22) altrimenti è lunga fino al prossimo spazio... |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Sep 2002
Città: Monza
Messaggi: 598
|
uffffffffff
dopo un pomeriggio di fatica ecco il risultato, forse si può ottimizzare, lo posto affinchè possa servire ai posteri: SCOPO: dato un url (di google) fare la sintassi e trovare le frasi e le parole cercate considerando anche il segno - (per gli altri caratteri tipo or e simili, mi permetto di tralasciarli). ESEMPIO: con google cerco: "manuali di php" -"funzioni asp" metodi funzioni truccchi "risoluzione problemi" -"gatti neri e bianchi" l'url sarà: h_t_t_p://w_w_w.google.com/search?hs=U82&hl=it&client=opera&rls=it&q=%22manuali+di+php%22+-%22funzioni+asp%22+metodi+funzioni+truccchi+%22risoluzione+problemi%22+-%22gatti+neri+e+bianchi%22&btnG=Cerca&lr= il codice realizzato: Codice:
<? $e="http://www.google.com/search?hs=U82&hl=it&client=opera&rls=it&q=%22manuali+di+php%22+-%22funzioni+asp%22+metodi+funzioni+truccchi+%22risoluzione+problemi%22+-%22gatti+neri+e+bianchi%22&btnG=Cerca&lr="; echo$e; $t = explode("&q=", $e); //echo"<br>"; $t2=explode("&", $t[1]); $x=$t2[0]; $x="*s*".$x; //echo"<br>x:".$x; //echo"<br>"; $eq=str_replace("-+", "+-", $x); $e0=str_replace("-%22", "%22-", $eq); $e1=str_replace("%22+%22", "*chiusa**aperta*", $e0); $e2=str_replace("%22+-%22", "*chiusa*-*aperta*", $e1); $e3=str_replace("-%22", "-*aperta*", $e2); $e4=str_replace("-%22", "-*aperta*", $e3); $e5=str_replace("%22+", "*chiusa**s*", $e4); $e6=str_replace("%22", "*aperta*", $e5); //echo"<br>"; //echo"<br>e:".$e6; $e6="*aperta*".$e6; //echo"<br>"; $t3=explode("*aperta*", $e6); $dim_t3=0; $indice1=0;$indice2=0; $vettore_negativo[]=""; $vettore_positivo[]=""; foreach($t3 as $v) $dim_t3++; for ($i=0;$i<$dim_t3;$i++){ $ex="*chiusa*".$t3[$i]; $t4=explode("*chiusa*", $ex); $dim_t4=0; foreach($t4 as $v) $dim_t4++; for ($i2=0;$i2<$dim_t4;$i2++){ if($t4[$i2]<>""){ if($t4[$i2]=="*s*"){} else{ $prefisso = substr($t4[$i2], 0, 3); if($prefisso=="*s*"){ $puro=str_replace("*s*", "+", $t4[$i2]); $pulito=explode("+", $puro); $dim_p=0; foreach($pulito as $v) $dim_p++; for ($i3=0;$i3<$dim_p;$i3++) if($pulito[$i3]<>""){ //echo"<br>w3:".$pulito[$i3]; $pre = substr($pulito[$i3], 0, 1); if($pre=="-"){ $$pulito[$i3]=str_replace("-", "", $pulito[$i3]); $vettore_negativo[$indice1]=$pulito[$i3]; $indice1++; } else{ $vettore_positivo[$indice2]=$pulito[$i3]; $indice2++; } } } else{ $puro2=str_replace("+", " ", $t4[$i2]); //echo"<br>w2:".$puro2; $pre2 = substr($puro2, 0, 1); if($pre2=="-"){ $puro2=str_replace("-", "", $puro2); $vettore_negativo[$indice1]=$puro2; $indice1++; } else{ $vettore_positivo[$indice2]=$puro2; $indice2++; } } } } } } echo"<br><br><br><br><br>"; $dim5=0; foreach($vettore_negativo as $v) $dim5++; for ($i5=0;$i5<$dim5;$i5++) echo"<br>VETTORE -:".$vettore_negativo[$i5]; $dim6=0; foreach($vettore_positivo as $v) $dim6++; for ($i6=0;$i6<$dim6;$i6++) echo"<br>VETTORE +:".$vettore_positivo[$i6]; //echo"<br><br><br><br><br>"; ?> Codice:
VETTORE -:funzioni asp VETTORE -:gatti neri e bianchi VETTORE +:manuali di php VETTORE +:metodi VETTORE +:funzioni VETTORE +:truccchi VETTORE +:risoluzione problemi
__________________
Nunc est bibendum |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Bravo...mi dispiace di avrti potuto dare poco aiuto... Ciao
![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:11.