php: nome file da url + riferimento ad ancora interna

Area di discussione libera.

Moderatore: Staff

Regole del forum
1) Rispettare le idee altrui.
2) Evitare le offese dirette.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
giberg
Linux 4.x
Linux 4.x
Messaggi: 1282
Iscritto il: mer 21 set 2005, 17:28
Nome Cognome: Gianni
Slackware: current64
Kernel: 3.7.1
Desktop: 4.8.5
Località: S. Biagio di Callalta (TV)

php: nome file da url + riferimento ad ancora interna

Messaggio da giberg »

Ciao

Ho bisogno di estrarre il nome di un file (pagina web) corrente comprensivo del riferimento ad un ancoraggio interno alla pagina stessa, tramite php...

Esempio:

/percorso/pagina.php#rif1
/percorso/pagina.php#rif2
ecc.


con basename($_SERVER["PHP_SELF"]) estraggo solo pagina.php .

C'è un modo per estrarre pagina.php#rif1?

Grazie

Avatar utente
dapuzz
Linux 4.x
Linux 4.x
Messaggi: 1137
Iscritto il: mar 16 mag 2006, 11:09
Contatta:

Messaggio da dapuzz »

no perchè il link tramite "ancoraggio" non invoca il server, ma è interpretato solo via browser. Al massimo forse potrebbe essere possibile tramite javascript.

Avatar utente
alessiodf
Linux 3.x
Linux 3.x
Messaggi: 823
Iscritto il: ven 14 ott 2005, 21:04
Slackware: current
Kernel: 2.6.26.4
Desktop: Kde 4.1
Località: Roma
Contatta:

Messaggio da alessiodf »

Se ti serve poi per fare un redirect piu' specifico nella pagina, e devi quindi passarlo ad una form, puoi usare com eti hanno detto JS.. altro non si puo' fare!

Avatar utente
IceSlack
Linux 4.x
Linux 4.x
Messaggi: 1313
Iscritto il: dom 30 ott 2005, 13:27

Messaggio da IceSlack »

su firefox non funziona molto bene, in certi siti....

Avatar utente
giberg
Linux 4.x
Linux 4.x
Messaggi: 1282
Iscritto il: mer 21 set 2005, 17:28
Nome Cognome: Gianni
Slackware: current64
Kernel: 3.7.1
Desktop: 4.8.5
Località: S. Biagio di Callalta (TV)

Messaggio da giberg »

dapuzz ha scritto:no perchè il link tramite "ancoraggio" non invoca il server, ma è interpretato solo via browser.
Vero, non ci avevo pensato... :roll:
dapuzz ha scritto: Al massimo forse potrebbe essere possibile tramite javascript.
Non volevo usare javascript, visto che io stesso li blocco quando navigo...

In pratica ho un menù in php. In un array sono contenuti URL e descrizioni. Poi parte un ciclo e viene confrontato il basename della pagina corrente con il basename dell'URL. Se corrispondono allora compare anche un'immaginetta affianco al link attivo (che sarà visualizzato come testo senza <a href...>) se invece non corrispondono allora viene visualizzato il link normalmente.
Se sono link normali tutto funziona, se ci sono link con un riferimento interno alla pagina, del tipo pagina.php#rif, allora no.

Avatar utente
aschenaz
Staff
Staff
Messaggi: 4623
Iscritto il: mer 28 lug 2004, 0:00
Nome Cognome: Nino
Slackware: current
Kernel: 5.4.x
Desktop: KDE
Località: Reggio Calabria
Contatta:

Messaggio da aschenaz »

giberg ha scritto:...
Se sono link normali tutto funziona, se ci sono link con un riferimento interno alla pagina, del tipo pagina.php#rif, allora no.
E non puoi splittare la stringa prima del #? Ad esempio con explode?

Avatar utente
dapuzz
Linux 4.x
Linux 4.x
Messaggi: 1137
Iscritto il: mar 16 mag 2006, 11:09
Contatta:

Messaggio da dapuzz »

si, con ajax potresti fare follie facendoti ricaricare al volo la pagina php che genera il menu passandoci tu l'indirizzo corretto, ma come hai già detto non vuoi usare js, quindi niente ajax :P

Codice: Seleziona tutto

function live(url,idmenu,idspinner)
{
	var liveUrl = url;
	var preview = document.getElementById(idmenu);
	//var spinner = document.getElementById(idspinner);

	if (window.XMLHttpRequest) {
		liveReq = new XMLHttpRequest();
	}
	if (window.XMLHttpRequest) {
		// branch for IE/Windows ActiveX version
	}else if (window.ActiveXObject) {
		liveReq = new ActiveXObject("Microsoft.XMLHTTP");
	}	

	liveReq.onreadystatechange = function()
	{
		if (liveReq.readyState == 4 && (liveReq.status == 200 || liveReq.status == 304)) 
		{
			var testo = liveReq.responseText;
			preview.innerHTML = testo;
			//spinner.className = "spinner_hide";
		}
		//if (liveReq.readyState < 4 ) 
		//{
		//	spinner.className = "spinner_show";
		//}
	};
	// join them into a string.
	fields = get_address_data(); //Ritorna un array con i parametri da passare via post alla pagina che genera il menu
	var post = fields.join("&");
	liveReq.open("POST", liveUrl,true);
	liveReq.setRequestHeader('Content-Type',
    	'application/x-www-form-urlencoded');
	liveReq.send(post);
}

Avatar utente
giberg
Linux 4.x
Linux 4.x
Messaggi: 1282
Iscritto il: mer 21 set 2005, 17:28
Nome Cognome: Gianni
Slackware: current64
Kernel: 3.7.1
Desktop: 4.8.5
Località: S. Biagio di Callalta (TV)

Messaggio da giberg »

ninobi ha scritto:E non puoi splittare la stringa prima del #? Ad esempio con explode?
Sono andato a vedermi explode e split per capire (conosco ancora poco). Beh sì, così funzionerebbe, però considererebbe tutti i link a quella pagina come pagina attiva, quindi mi servirebbe a poco...

Rispondi