Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori
Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori
Il primo headset open-back della linea INZONE arriva a 200 euro con driver derivati dalle cuffie da studio MDR-MV1 e un peso record di soli 199 grammi
Nutanix cambia pelle: dall’iperconvergenza alla piattaforma full stack per cloud ibrido e IA
Nutanix cambia pelle: dall’iperconvergenza alla piattaforma full stack per cloud ibrido e IA
Al .NEXT 2026 di Chicago, Nutanix ha mostrato quanto sia cambiata: una piattaforma software che gestisce VM, container e carichi di lavoro IA ovunque, dall’on-premise al cloud pubblico. Con un’esecuzione rapidissima sulle partnership e sulla migrazione da VMware
Recensione Xiaomi Pad 8 Pro: potenza bruta e HyperOS 3 per sfidare la fascia alta
Recensione Xiaomi Pad 8 Pro: potenza bruta e HyperOS 3 per sfidare la fascia alta
Xiaomi Pad 8 Pro adotta il potente Snapdragon 8 Elite all'interno di un corpo con spessore di soli 5,75 mm e pannello LCD a 144Hz flicker-free, per un tablet che può essere utilizzato con accessori dedicati di altissima qualità. Fra le caratteristiche esclusive, soprattutto per chi intende usarlo con la tastiera ufficiale, c'è la modalità Workstation di HyperOS 3, che trasforma Android in un sistema operativo con interfaccia a finestre
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-11-2010, 12:01   #1
biowep
Member
 
L'Avatar di biowep
 
Iscritto dal: Nov 2010
Messaggi: 211
[PHP] Espressioni regolari per eliminare file da una stringa contenente un URL

Ciao
ho una variabile contenente una stringa URL
Codice PHP:
$url "http://www9.esempio.org/percorso/percorso/percorso/file.php?parametro=valore"
vorrei eliminare tutto quello che di trova dopo l'ultimo "/" e concatenare a $url il valore contenuto
Codice HTML:
<form id="forma" method="POST" name="logForm" action="login.php?lang=it">
in action="qui"
da notare che la sequenza degli attributi dentro <form> potrebbe cambiare
qualcuno sa come verrebbe scritta questa istruzione?
biowep è offline   Rispondi citando il messaggio o parte di esso
Old 20-11-2010, 12:15   #2
bobbytre
Senior Member
 
L'Avatar di bobbytre
 
Iscritto dal: Feb 2010
Messaggi: 466
Quote:
Originariamente inviato da biowep Guarda i messaggi
Ciao
ho una variabile contenente una stringa URL
Codice PHP:
$url "http://www9.esempio.org/percorso/percorso/percorso/file.php?parametro=valore"
vorrei eliminare tutto quello che di trova dopo l'ultimo "/" e concatenare a $url il valore contenuto
Codice HTML:
<form id="forma" method="POST" name="logForm" action="login.php?lang=it">
in action="qui"
da notare che la sequenza degli attributi dentro <form> potrebbe cambiare
qualcuno sa come verrebbe scritta questa istruzione?
ma vuoi usare per forza le espressioni regolari o ti basta una soluzione che funzioni ?
__________________
I robot hanno scintillanti fondoschiena metallici che non dovrebbero essere baciati.
bobbytre è offline   Rispondi citando il messaggio o parte di esso
Old 20-11-2010, 12:21   #3
biowep
Member
 
L'Avatar di biowep
 
Iscritto dal: Nov 2010
Messaggi: 211
non per forza
l'ideale sarebbe consigliarmi qualche libreria con la quale posso cercare elementi dalla pagina html [che viene salvata dentro una variabile] di risposta
ad esempio
faccio una richiesta con le funzioni cURL
la pagina viene salvata dentro una variabile che la contiene interamente
non esiste qualche libreria con cui cercare il valore degli attributi dentro i tag, verificare l'esistenza di certi tag in base all'id css...

comunque per quel lavoro li mi basta qualsiasi soluzione che funzioni sempre
l'importante che sia molto efficiente
considerando che questo script lavora con variabili contenenti stringhe lunghe come una pagina html

Ultima modifica di biowep : 20-11-2010 alle 12:47.
biowep è offline   Rispondi citando il messaggio o parte di esso
Old 20-11-2010, 13:21   #4
Fonta_88
Junior Member
 
Iscritto dal: Jan 2010
Messaggi: 12
Se sai usare javascript penso che si possa fare così:
Nel file .js crei una variabile globale alla quale, con una chiamata ad una funzione, assegni il valore della variabile $url privato della parte di testo che non ti interessa; quindi nel punto in cui ti serve l'indirizzo completo (con la parte che vuoi aggiungergli) chiami una seconda funzione, cui passi il pezzo finale, che concatena le stringhe e restituisce il valore corretto.
Fonta_88 è offline   Rispondi citando il messaggio o parte di esso
Old 20-11-2010, 13:55   #5
bobbytre
Senior Member
 
L'Avatar di bobbytre
 
Iscritto dal: Feb 2010
Messaggi: 466
mi è poco chiaro quello che vuoi fare
__________________
I robot hanno scintillanti fondoschiena metallici che non dovrebbero essere baciati.
bobbytre è offline   Rispondi citando il messaggio o parte di esso
Old 20-11-2010, 14:17   #6
biowep
Member
 
L'Avatar di biowep
 
Iscritto dal: Nov 2010
Messaggi: 211
Quote:
Originariamente inviato da Fonta_88 Guarda i messaggi
Se sai usare javascript penso che si possa fare così:
Nel file .js crei una variabile globale alla quale, con una chiamata ad una funzione....
purtroppo non so niente di javscript

Quote:
Originariamente inviato da bobbytre Guarda i messaggi
mi è poco chiaro quello che vuoi fare
dunque, ho questo script
Codice PHP:
$ch curl_init();
curl_setopt ($chCURLOPT_URL"http://google.it");
curl_setopt ($chCURLOPT_USERAGENT"Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.517.44 Safari/534.7");
curl_setopt ($chCURLOPT_TIMEOUT30);
curl_setopt ($chCURLOPT_FOLLOWLOCATIONtrue);
curl_setopt ($chCURLOPT_RETURNTRANSFERtrue);
curl_setopt ($chCURLOPT_AUTOREFERERtrue);
curl_setopt ($chCURLOPT_HEADERtrue);
curl_setopt ($chCURLOPT_COOKIEJAR$cookie);
curl_setopt ($chCURLOPT_POSTtrue);
$result curl_exec ($ch); 
la variabile $result contiene tutto il codice HTML inviato dal server
in questo codice c'è questo form [non sto parlando di google]
<form id="forma" method="POST" name="logForm" action="login.php?lang=it">
io vorrei prendere il valore action="qui dentro"
e salvarlo dentro una variabile
da tener presente che gli attributi potrebbero essere scritti in modi sporso:
<form id="forma" action="login.php?lang=it" name="logForm" method="POST">

l'altra cosa da fare è
avendo una variabile
$url = "http://www9.esempio.org/percorso/percorso/percorso/file.php?parametro=valore";
voglio reimpostare questa variabile dopo aver eliminato tutto quello che si trova oltre l'ultimo "/"
questo mi serve per fare una richiesta ad una nuova pagina che sara
http://www9.esempio.org/percorso/per...sodentroaction


potrei anche farlo utilizzando le variabili per gestire le stringhe [substr(); strpos(); strstr();]
pero diventa una cosa molto lunga e non credo sia molto efficiente dal momento che la variabile su cui lavorano è $result ed è molto lunga [una pagina HTML]
biowep è offline   Rispondi citando il messaggio o parte di esso
Old 20-11-2010, 18:38   #7
bobbytre
Senior Member
 
L'Avatar di bobbytre
 
Iscritto dal: Feb 2010
Messaggi: 466
adesso ho capito cosa devi fare, quindi ti conviene usare le espressioni regolari.

magari prima ti estrai tutti i <form> dalla pagina che ricevi con preg_match_all e poi per ogni <form cerchi gli attributi che ti interessano.
__________________
I robot hanno scintillanti fondoschiena metallici che non dovrebbero essere baciati.
bobbytre è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2010, 11:39   #8
biowep
Member
 
L'Avatar di biowep
 
Iscritto dal: Nov 2010
Messaggi: 211
sarebbe possibile creare un oggetto dom dalla pagina ricevuta e poi qui dentro cercare

$form = getElementById('forma');
$url = echo $form->getAttribute('action');

quello che non so fare è creare l'oggetto dom.
la pagina ricevuta dal server è salvata dentro la variabile $result che contiene una stringa lunghissima con il codice html
biowep è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2010, 12:35   #9
MEMon
Senior Member
 
Iscritto dal: Dec 2002
Messaggi: 3359
Quote:
Originariamente inviato da biowep Guarda i messaggi
sarebbe possibile creare un oggetto dom dalla pagina ricevuta e poi qui dentro cercare

$form = getElementById('forma');
$url = echo $form->getAttribute('action');

quello che non so fare è creare l'oggetto dom.
la pagina ricevuta dal server è salvata dentro la variabile $result che contiene una stringa lunghissima con il codice html
Dai un occhio a questo http://simplehtmldom.sourceforge.net...section_create e questo http://php.net/manual/en/class.domdocument.php
MEMon è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2010, 13:47   #10
biowep
Member
 
L'Avatar di biowep
 
Iscritto dal: Nov 2010
Messaggi: 211
quella libreria l'ho gia provata
ma quando uso la funzione str_get_html
per creare l'oggettp dom, non finisce piu
una volta l'ho lasciato concludere lo script
ci ha messo piu di 5 minuti
è decisamente troppo

per quanto riguarda la documentazione,
ho provato questo esempio
http://www.php.net/manual/en/class.d...ment.php#95894
e nono viene fuori niente, pagina bianca [probabilmente un errore considerando che non vengono motrati]
e inoltre non capisco come faccia a caricare il codice html da $url se prima non ha fatto una richiesta curl per la pagina
$xml->loadHTMLFile($url);
biowep è offline   Rispondi citando il messaggio o parte di esso
Old 22-11-2010, 17:14   #11
biowep
Member
 
L'Avatar di biowep
 
Iscritto dal: Nov 2010
Messaggi: 211
sono riuscito ad estrarre il contenuto del attributo action in questo modo [magari può essere utile]
Codice PHP:
$ch curl_init();
...
$result curl_exec ($ch);
$dom = new domDocument;
$dom->loadHTML($result);
$form $dom->getElementById('forma');
$url $form->getAttribute('action'); 
qualcuno può aiutarmi ad eliminare l'ultima parte di una stringa [quella dopo l'ultimo "/"]?

stavo pensando di far esplodere la stringa ogni "/"
eliminare l'ultimo elemento dell'array generato dell'explode
per ogni valore dell'array, aggiungere "/" alla fine [perche con l'explode è stato cancellato]
e far implodere l'array, generando la stringa desiderata

dite sia un buon modo?

Ultima modifica di biowep : 22-11-2010 alle 17:22.
biowep è offline   Rispondi citando il messaggio o parte di esso
Old 22-11-2010, 17:41   #12
MEMon
Senior Member
 
Iscritto dal: Dec 2002
Messaggi: 3359
Quote:
Originariamente inviato da biowep Guarda i messaggi
sono riuscito ad estrarre il contenuto del attributo action in questo modo [magari può essere utile]
Codice PHP:
$ch curl_init();
...
$result curl_exec ($ch);
$dom = new domDocument;
$dom->loadHTML($result);
$form $dom->getElementById('forma');
$url $form->getAttribute('action'); 
qualcuno può aiutarmi ad eliminare l'ultima parte di una stringa [quella dopo l'ultimo "/"]?

stavo pensando di far esplodere la stringa ogni "/"
eliminare l'ultimo elemento dell'array generato dell'explode
per ogni valore dell'array, aggiungere "/" alla fine [perche con l'explode è stato cancellato]
e far implodere l'array, generando la stringa desiderata

dite sia un buon modo?
Andrebbe bene, se usi implode puoi specificare un separatore, quini non hai bisogni di riaggiungere "/".
MEMon è offline   Rispondi citando il messaggio o parte di esso
Old 22-11-2010, 17:44   #13
MEMon
Senior Member
 
Iscritto dal: Dec 2002
Messaggi: 3359
Oppure se ti piacciono le regex puoi usare questa per eliminare solo la coda
Codice:
[^/]*$
MEMon è offline   Rispondi citando il messaggio o parte di esso
Old 22-11-2010, 18:14   #14
biowep
Member
 
L'Avatar di biowep
 
Iscritto dal: Nov 2010
Messaggi: 211
e quale dei due è il più veloce per il server?
biowep è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori Sony INZONE H6 Air: il primo headset open-back d...
Nutanix cambia pelle: dall’iperconvergenza alla piattaforma full stack per cloud ibrido e IA Nutanix cambia pelle: dall’iperconvergenza alla ...
Recensione Xiaomi Pad 8 Pro: potenza bruta e HyperOS 3 per sfidare la fascia alta Recensione Xiaomi Pad 8 Pro: potenza bruta e Hyp...
NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abb...
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz ASUS ROG Swift OLED PG34WCDN recensione: il prim...
YMTC, il produttore di memorie 100% cine...
I gamer rinunciano alla RAM ma non agli ...
Oltre 100 estensioni Chrome malevole rub...
Multi Frame Generation 5x e 6x anche su ...
Kraken sotto ricatto dopo due accessi in...
Meta e Broadcom: accordo fino al 2029 pe...
Hai attivato l'opt-out? Google, Meta e M...
Donna denuncia OpenAI: ChatGPT avrebbe a...
Claude Mythos e i test che smontano (sol...
Rockstar Games guadagna ancora cifre eno...
Nasce DIVE - Driving Innovation in Venet...
Fastweb entra tra i partner di Starlink ...
Tesla completa il tape-out del chip AI5:...
App falsa di Ledger Live sull'App Store ...
Svelato il prezzo dell'e-bike che sostit...
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: 13:42.


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