webForumDet fria alternativet

Plocka ut data från $_SERVER['REQUEST_URI']

7 svar · 362 visningar · startad av ejick

ejickMedlem sedan mars 2001895 inlägg
#1

Hej,

jag läste ett inlägg som var postat idag och tog upp $_SERVER['REQUEST_URI']; vilket verkar passa det jag är ute efter. Hur som helst, jag håller på med en hemsida och skulle vilja att den auto-genererar titel och brödsmulor beroende på var den finns. Kan man göra detta enligt exempel adressen är www.domännamn.se/verktyg/slagverktyg/hammare denna genererar sedan:

<title>domännamn - [blue]vertyg[/blue] - [blue]slagvertyg[/blue] - [blue]hammare[/blue]</title>
...
<p>Du är: <a href="/">[blue]Start[/blue]</a> / <a href="../../verktyg">[blue]verktyg[/blue]</a> /<a href="../slagverktyg">[blue]slagverktyg[/blue]</a> / [blue]hammare[/blue]</p>

Funktionen jag söker skriver alltså ut det i blått beroende på adressen. Skulle adressen vara www.domännamn.se/verktyg/mejslar/skruvmejsel som exempel skulle resultatet bli:

<title>domännamn - [blue]vertyg[/blue] - [blue]slagvertyg[/blue] - [blue]hammare[/blue]</title>
...
<p>Du är: <a href="/">[blue]Start[/blue]</a> / <a href="../../verktyg">[blue]verktyg[/blue]</a> /<a href="../slagverktyg">[blue]mejslar[/blue]</a> / [blue]skruvmejslar[/blue]</p>

Undrar alltså hur man gör detta samt möjlighet att lägga till mapp-länkar.

Tacksam för svar

FIG-GHD742Medlem sedan apr. 20079 inlägg
#2

Vad vill du göra? Du har en mappstruktur som se ut så? med mappen? och allt? eller?
Om så använda $_SERVER['PHP_SELF'] då kommer du att får en sträng med alla mappar + filen som du är på fårn roten, Tex om jag är på google.se/minhemisda/sida1.php
så får du ut /minhemisda/sida1.php använda sedan str_replace("/" , " / ", $url);

Vissa ändringa behövs göra för nu lär du också får med / index.php
Om det alltid är / index.php använda substr($str, 0, strlen($str) - strlen( "/ index.php"));

ejickMedlem sedan mars 2001895 inlägg
#3

Hm alltså jag är intresserad av att kunna använda de mappnamn som förekommer i titeln och som brödsmulor (breadcrumbs). Jag hittade ett script som fungerade delvis som jag ville, men här skriver den bara ut det direkt, skulle vilja att det sparades i någon varibel istället så jag själv kan välja var jag vill skriva ut det samt att skriva ut det på flera ställen. Det skulle även vara intressant om man kunde få en viss mapps namn, den andra eller den tredje etc. och skriva ut.

Känner mig inte så speciellt vass på att förklara, men med bifogat script kanske ett och annat klarnar :)

<?PHP
    function crumbs($path,$root='') {
        global $page_title;
	
	$path = preg_split('%\/%', $path, -1, PREG_SPLIT_NO_EMPTY);
	$trail = $root . '/';
	
	if (count($path) <= 1) {
	    return 'Home';
	}
	else {
	    echo "<a href=\"$trail\" title=\"Home Page\">Home</a>\n";
	    
	    for($i=0; $i<(count($path)-1); $i++) {
		// more links needed to be created
		$trail .= $path[$i] .'/';
		$title = ucwords(str_replace('_', ' ', $path[$i]));
		echo "| <a href=\"$trail\" title=\"$title\">$title</a>\n";
	    }
	}
	return true;
    }
    crumbs($_SERVER['PHP_SELF']);
?>
FIG-GHD742Medlem sedan apr. 20079 inlägg
#4

Är detta bäter? Svårt att göra en kod, när man inte rikit vet hur du vill använda den ;)

<?PHP
//    function crumbs($path, $root='') {

	$path = "FIG/SIDA";

    $path = preg_split('%\/%', $path, -1, PREG_SPLIT_NO_EMPTY);
    $trail = $root . '/';
    
    if (count($path) <= 1) {
        return 'Home';
    }
    else {
         $linkstr = "<a href=\"$trail\" title=\"Home Page\">Home</a>\n";
        
        for($i=0; $i<(count($path)-1); $i++) {
        // more links needed to be created
        $trail .= $path[$i] .'/';
        $title = ucwords(str_replace('_', ' ', $path[$i]));
	$linkstr .= "| <a href=\"$trail\" title=\"$title\">$title</a>\n";
	$arry[$title]=$trail;
        }
}

  
  

echo $linkstr;
// Sparas också som en arry[] med namn=>länk

?>
ejickMedlem sedan mars 2001895 inlägg
#5

Inte för att jag får ditt script att fungera, men tanken är väl att det ska skriva ut:

1) verktyg - slagverktyg - hammare
2) <a href="../../verktyg">verktyg</a> - <a href="../slagvertyg">slagverktyg</a> - hammare
FIG-GHD742Medlem sedan apr. 20079 inlägg
#6

OK, hur mycket php kan du?
Testa detta då?

<?PHP
//    function crumbs($path, $root='') {

	 $path = str_replace("/index.php" , "", $_SERVER['PHP_SELF']);

    $path = preg_split('%\/%', $path, -1, PREG_SPLIT_NO_EMPTY);
    $trail = $root . '/';
    
    if (count($path) <= 1) {
        return 'Home';
    }
    else {
         $linkstr = "<a href=\"$trail\" title=\"Home Page\">Home</a>\n";
         $titelstr = "Home";
        for($i=0; $i<(count($path)-1); $i++) {
        // more links needed to be created
        $trail .= $path[$i] .'/';
        $title = ucwords(str_replace('_', ' ', $path[$i]));
	$linkstr .= "- <a href=\"$trail\" title=\"$title\">$title</a>\n";
	$titelstr .= "- $title";
        }
}

echo $linkstr;
echo "<hr>";
echo $titelstr ;

?>

Så här skriver den ut när jag är på denna ardessen http://127.0.0.1/travian/defult/temp.php

<a href="/" title="Home Page">Home</a>
- <a href="/travian/" title="Travian">Travian</a>
- <a href="/travian/defult/" title="Defult">Defult</a>
<hr>Home- Travian- Defult
ejickMedlem sedan mars 2001895 inlägg
#7

Ah, ser mycket bra ut. Precis vad jag letade efter! Tackar!

Ang. mina kunskaper i PHP så har jag väl inte så jättekoll ;)

FIG-GHD742Medlem sedan apr. 20079 inlägg
#8

Ok, bra att man kan hjälpa, har själv en fråga om regular expression ute nu, inget svar än :( är för den delen ny här
Mäk tråden som avklarade:)

135 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)