Avatar billede vipez Nybegynder
11. juli 2004 - 16:49 Der er 8 kommentarer og
1 løsning

$rawurlencode() i breadcrumb() og server-rod ?

1) Jeg får denne breadcrumb => Du er her: > Sbgr > Galleri > Stævnebilleder > 05.15.04 HVR Dressur
Hvordan undgår jeg Sbgr som ligger på http://server-rod/sbgr ?

2) Hvordan gør jeg så denne kode kan aflæse æøå ?, Hvor er det lige jeg skal bruge $rawurlencode() ?
<?php

function breadcrumb()
{
    $root = 'http://www.vipez.dynu.com/'; // Domænet
    $dirs = explode('/', $_SERVER['PHP_SELF']); // Split ved slashes
    $size = sizeof($dirs)-1; // Antal biblioteker
    $outp = 'Du er her:';
    $div  = ' > '; // Adskillelse ved links mellem biblioteker i output
    $fnam = substr($dirs[$size], 0, strrpos($dirs[$size], '.')); // Filnavn (mellem begyndelse af sidste element i $dirs-array'et og (sidste) punktum)
    $hide = array('index','SBGR','thumbs'); // Filernavne, der ikke skal linkes til

    for ($i = 1; $i < $size; $i++) {
        $outp .= $div . '<a href="' . $root . $dirs[$i] . '/" target="main"><I>' . ucwords(strtr($dirs[$i], '_', ' ')) . '</i></a>'; // Lav adskillelse og link til det aktuelle bibliotek ($dirs[$i])
        $root .= $dirs[$i] . '/'; // Tilføj det aktuelle bibliotek til $root.
    }

    if (in_array($fnam, $hide) == false) {
    $outp .= $div . '<a href="' . $root . $dirs[$size] . '">' . ucwords(strtr($fnam, '_', ' ')) . '</a>'; // Skriv link til filnavn, hvis det ikke skal skjules
    }

  return $outp;
}
50 per spg.?
Avatar billede sukos Juniormester
12. juli 2004 - 06:16 #1
Hvorfor "gemme" noget som man kan se i adesselinien?

Bruger selv denne:

<?php

//$ejvist = array("Sbgr", "til_test");

$path = explode("/", $_SERVER["PHP_SELF"]);
$dirs = count($path);
$home = "/";

echo "Navigation: <a href=\"". $home  ."\">Forsiden</a> ";

for ($i = 1; $i < $dirs; $i++) {
    if(is_dir($_SERVER["DOCUMENT_ROOT"] . $home . $path[$i])) {
$home = $home . $path[$i] ."/";

/*
if(in_array($path[$i], $ejvist)) {
continue;
}
*/

    echo " - <a href=\"". $home ."\">". $path[$i] ."</a>";

}else{

if(!empty($_SERVER["QUERY_STRING"])) {
$string = "?". htmlentities(urldecode($_SERVER["QUERY_STRING"]));
}else{
$string = "";
}

echo " - ". $path[$i] . $string;
        }

    }
?>

Har her kommenteret det med "skjulte", og kun for dirs.
rawurlencode() er når der skal laves links.
rawurldecode() er "oversættelsen" af links.
Avatar billede vipez Nybegynder
12. juli 2004 - 09:19 #2
Jooo men nu får jeg den sådan her, hvor sbgr og index.php bare ikke er links hvilket er ok for sbgr men index.php skal slet ikke vises da det bare er stævnebilleder jeg vil vise, hvilket er mappen som index.php jo ligger i.

Navigation: Forsiden > sbgr > galleri > Stævnebilleder > index.php

Det jeg vil have er at sbgr skal "forsiden" linke til og der skal så kun står forside og ikke forside > sbgr > da de viser det samme.
Og index.php skal ikke vises.

Min kode er:

<?php

$ejvist = array("Sbgr", "index");

$path = explode("/", $_SERVER["PHP_SELF"]);
$dirs = count($path);
$home = "/sbgr/";

echo "Navigation: <a href=\"". $home  . "\">Forsiden</a> ";

for ($i = 1; $i < $dirs; $i++) {
    if(is_dir($_SERVER["DOCUMENT_ROOT"] . $home . $path[$i])) {
$home = $home . $path[$i] ."/";

/*
if(in_array($path[$i], $ejvist)) {
continue;
}
*/

    echo " > <a href=\"". $home ."\">". $path[$i] ."</a>";

}else{

if(!empty($_SERVER["QUERY_STRING"])) {
$string = "?". htmlentities(urldecode($_SERVER["QUERY_STRING"]));
}else{
$string = "";
}

echo " > ". $path[$i] . $string;
        }

    }
?>
Avatar billede sukos Juniormester
12. juli 2004 - 11:45 #3
Så'n ???

<?php

$path = explode("/", $_SERVER["PHP_SELF"]);
$dirs = count($path);
$home = "/sbgr/";

echo "Navigation: <a href=\"". $home  . "\">Forsiden</a> ";

for ($i = 1; $i < $dirs; $i++) {

if($path[$i] == "sbgr") {
continue;
}

    if(is_dir($_SERVER["DOCUMENT_ROOT"] . $home . $path[$i])) {
$home = $home . rawurlencode($path[$i]) ."/";
echo " > <a href=\"". $home ."\">". rawurldecode($path[$i]) ."</a>";

}else{

if(basename($_SERVER["PHP_SELF"]) != "index.php") {
echo" &gt; ". $path[$i];
}


if(!empty($_SERVER["QUERY_STRING"])) {
$string = " &gt; ?". htmlentities(urldecode($_SERVER["QUERY_STRING"]));
}else{
$string = "";
}

echo $string;

        }

    }
?>
Avatar billede sukos Juniormester
12. juli 2004 - 11:47 #4
hmm,

<?php

$path = explode("/", $_SERVER["PHP_SELF"]);
$dirs = count($path);
$home = "/sbgr/";

echo "Navigation: <a href=\"". $home  . "\">Forsiden</a> ";

for ($i = 1; $i < $dirs; $i++) {

if($path[$i] == "sbgr") {
continue;
}

    if(is_dir($_SERVER["DOCUMENT_ROOT"] . $home . $path[$i])) {
$home = $home . rawurlencode($path[$i]) ."/";
echo " &gt; <a href=\"". $home ."\">". rawurldecode($path[$i]) ."</a>";

}else{

if(basename($_SERVER["PHP_SELF"]) != "index.php") {
echo" &gt; ". $path[$i];
}


if(!empty($_SERVER["QUERY_STRING"])) {
$string = " &gt; ?". htmlentities(urldecode($_SERVER["QUERY_STRING"]));
}else{
$string = "";
}

echo $string;
        }

    }
?>
Avatar billede vipez Nybegynder
12. juli 2004 - 16:50 #5
Det gjorde det.. Takker !!

Smider du lige et svar ?
Avatar billede vipez Nybegynder
12. juli 2004 - 16:50 #6
ehh den mangler noget.. ?
Avatar billede vipez Nybegynder
12. juli 2004 - 16:52 #7
Prøv se den her:
http://www.vipez.dynu.com/sbgr/galleri/St%e6vnebilleder/05.15.04%20HVR%20Dressur

den skulle gerne hedde:
Navigation: Forsiden > galleri > Stævnebilleder > 05.15.04 HVR Dressur

men viser den ikke dybt nok, da den kun viser
Navigation: Forsiden > galleri > Stævnebilleder
Avatar billede vipez Nybegynder
12. juli 2004 - 21:46 #8
der er noget galt med det der
rawurlencode() er når der skal laves links.
rawurldecode() er "oversættelsen" af links.
Avatar billede sukos Juniormester
09. august 2004 - 11:15 #9
Du har stadig lidt problemer?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester