Avatar billede warren27 Nybegynder
24. juli 2005 - 22:00 Der er 41 kommentarer og
1 løsning

Alfabetisk rækkefølge

Hejsa, jeg skrevet en kode ned, og jeg har fået fra et hæfte, den ser således ud:

<?
$navn[]="Terkel i knibe";
$navn[]="Way of the dragon";
$navn[]="Ghost";
$navn[]="Comning to America";
$navn[]="Kops";
$navn[]="Fatal instinct";
$navn[]="7154";
$navn[]="Ålen";
echo "Film-listen:<br><br>";
sort($navn);
for ($i = 0 ; $i<count($navn);$i++)
echo $navn[$i] . "<br>";
?>

Hvordan gør jeg så feks "Terkel i knibe" bliver til et link, og går hen på "terkel i knibe.php" ?

Og jeg vil osse gerne ha lavet det på den måde at "Terkel i knibe" åbner sig i et nyt vindue på en anden hjemmeside, ligesom man gøre med HTML target="_blank"

Håber i kan hjæpe mig

http://www.yalla.dk/abcde.php
Avatar billede leif Seniormester
24. juli 2005 - 22:04 #1
I din echo skal du lave et link.

Kunne se ud som:
echo '<a href="'.$navn[$i].'" target="_BLANK">'.$navn[$i].'.php</a><br>';
Avatar billede leif Seniormester
24. juli 2005 - 22:05 #2
echo '<a href="'.$navn[$i].'" target="_BLANK">'.$navn[$i].'.php</a><br>';
Avatar billede leif Seniormester
24. juli 2005 - 22:06 #3
Hmm, den fjerner nogen tegn fra linien når jeg submitter, men erstat $navn[$i med $navn[$i]
Avatar billede nielle Nybegynder
24. juli 2005 - 22:08 #4
$sorteretNavn = sort($navn);

foreach (sorteretNavn as $film)
{
    echo "<a href=\"" . $film . ".php\" target=\"_blank>" . $film . "</a><br>";
}
Avatar billede nielle Nybegynder
24. juli 2005 - 22:09 #5
Korrektion:

$sorteretNavn = sort($navn);

foreach (sorteretNavn as $film)
{
    echo "<a href=\"" . $film . ".php\" target=\"_blank\">" . $film . "</a><br>";
}
Avatar billede warren27 Nybegynder
24. juli 2005 - 22:29 #6
Hej Leif, det ser ikke helt rigtigt ud, eller osse har jeg bare misforstået dig. Kan du ikke skrive alt sammen ned som det skal se ud, og det fra den kode jeg skrev i mit spørgsmål...
Avatar billede leif Seniormester
24. juli 2005 - 22:36 #7
echo '<a href="' . $navn[$i] . '.php" target="_BLANK">' . $navn[$i] . '</a><br>';

Det skal bare stå der i stedet for den echo linie du har nu !

Kunne vist også have set ud som:
echo "<a href=\"" . $navn[$i] . ".php\" target=\"_BLANK\">" . $navn[$i] . "</a><br>";
Avatar billede warren27 Nybegynder
24. juli 2005 - 22:44 #8
Okay, nu fik jeg den til at "virke" - men problemet er så at de forskellige links skal pege på et url, der ligger i nogen andre mapper.
Avatar billede leif Seniormester
24. juli 2005 - 22:48 #9
I forskellige mapper eller den samme ?
Avatar billede warren27 Nybegynder
24. juli 2005 - 22:52 #10
Filmene ligger i forskellige mapper.

terkel i knibe hedder noget i stil med film_anmeld/t/terkel_i_kbibe.php
Way of the dragon hedder noget i stil med film_anmeld/W/way_of_the_dragon.php
Avatar billede Slettet bruger
24. juli 2005 - 22:57 #11
nielle du skal vel helst have $ på din variabel ;o)

$sorteretNavn = sort($navn);

foreach ($sorteretNavn as $film)
{
    echo "<a href=\"film_anmeld/". substr(trim($film), 0, 1) ."/" . $film . ".php\" target=\"_blank\">" . $film . "</a><br>";
}

Den bør kunne gøre det warren27
Avatar billede Slettet bruger
24. juli 2005 - 22:58 #12
Ellers tror jeg også at det her vil virke:

$sorteretNavn = sort($navn);

foreach ($sorteretNavn as $film)
{
    echo "<a href=\"film_anmeld/". $film[0] ."/" . $film . ".php\" target=\"_blank\">" . $film . "</a><br>";
}
Avatar billede nielle Nybegynder
24. juli 2005 - 22:59 #13
$sorteretNavn = sort($navn);

foreach (sorteretNavn as $filmTitel)
{
    $filmURL = str_replace(" ", "_", $filmTitel):
    $filmURL .= ".php";
    $filmURL = "film_anmeld/" . substr($filmURL, 0, 1) . "/" . $filmURL;

    echo "<a href=\"" . $filmURL . "\" target=\"_blank\">" . $filmTitel . "</a><br>";
}
Avatar billede nielle Nybegynder
24. juli 2005 - 23:01 #14
wicez har ret:

$sorteretNavn = sort($navn);

foreach ($sorteretNavn as $filmTitel)
{
    $filmURL = str_replace(" ", "_", $filmTitel):
    $filmURL .= ".php";
    $filmURL = "film_anmeld/" . substr($filmURL, 0, 1) . "/" . $filmURL;

    echo "<a href=\"" . $filmURL . "\" target=\"_blank\">" . $filmTitel . "</a><br>";
}
Avatar billede Slettet bruger
24. juli 2005 - 23:01 #15
Ahh øv nielle, jeg havde ikke set den med " " skulle laves om til " " ;o)
Avatar billede Slettet bruger
24. juli 2005 - 23:03 #16
$sorteretNavn = sort($navn);

foreach ($sorteretNavn as $filmTitel)
{
    echo "<a href=\"film_anmeld/". substr(trim(str_replace(" ", "_", $filmTitel)), 0, 1) ."/" . $filmTitel. ".php\" target=\"_blank\">" . $filmTitel. "</a><br>";
}
Avatar billede Slettet bruger
24. juli 2005 - 23:04 #17
nielles version er nok lidt mere overskueligt - Jeg tror det er tid for mig til at trække mig tilbage ;o)
Avatar billede warren27 Nybegynder
24. juli 2005 - 23:10 #18
Det bliver ved med at være forkert, jeg har lige nu lagt denne kode på.

<?
$navn[]="Terkel i knibe";
$navn[]="Way of the dragon";
$navn[]="Ghost";
$navn[]="Comning to America";
$navn[]="Kops";
$navn[]="Fatal instinct";
$navn[]="7154";
$navn[]="Ålen";
echo "Film-listen:<br><br>";
sort($navn);
for ($i = 0 ; $i<count($navn);$i++)
$sorteretNavn = sort($navn);

foreach ($sorteretNavn as $filmTitel)
{
    $filmURL = str_replace(" ", "_", $filmTitel):
    $filmURL .= ".php";
    $filmURL = "film_anmeld/" . substr($filmURL, 0, 1) . "/" . $filmURL;

    echo "<a href=\"" . $filmURL . "\" target=\"_blank\">" . $filmTitel . "</a><br>";
}
?>

Nogen der kan sige mig om det var sådan i mente, jeg er ikke kode haj, det eneste jeg kan finde ud af er HTML, og ikke engang det har jeg styr på specielt godt.
Avatar billede nielle Nybegynder
25. juli 2005 - 06:48 #19
Kan du ikke lige beskrive hvad der er galt?
Avatar billede nielle Nybegynder
25. juli 2005 - 08:49 #20
<?
$navn = array();
$navn[]="Terkel i knibe";
$navn[]="Way of the dragon";
$navn[]="Ghost";
$navn[]="Comning to America";
$navn[]="Kops";
$navn[]="Fatal instinct";
$navn[]="7154";
$navn[]="Ålen";
echo "Film-listen:<br><br>";

sort($navn);
foreach ($navn as $filmTitel)
{
    $filmURL = str_replace(" ", "_", $filmTitel):
    $filmURL .= ".php";
    $filmURL = "film_anmeld/" . substr($filmURL, 0, 1) . "/" . $filmURL;

    echo "<a href=\"" . $filmURL . "\" target=\"_blank\">" . $filmTitel . "</a><br>";
}
?>
Avatar billede Slettet bruger
25. juli 2005 - 09:05 #21
lol.. Jeg havde ikke engang set den påbegyndte for-løkke ;o)
Avatar billede warren27 Nybegynder
25. juli 2005 - 13:11 #22
Nielle, jeg har indsat din kode nu, den gav en fejl på linie 16 - men jeg kunne godt selv regne ud at du havde skrevet  : istedet for ; i  (" ", "_", $filmTitel):

Jeg er snart tilfreds med koden, men der er lige opstået et lille problem, for linkene tror at mapperne hedder T/Terkel_i_knibe.php men den hedder jo t/terkel_i_knibe.php
Avatar billede Slettet bruger
25. juli 2005 - 13:22 #23
<?
$navn = array();
$navn[]="Terkel i knibe";
$navn[]="Way of the dragon";
$navn[]="Ghost";
$navn[]="Comning to America";
$navn[]="Kops";
$navn[]="Fatal instinct";
$navn[]="7154";
$navn[]="Ålen";
echo "Film-listen:<br><br>";

sort($navn);
foreach ($navn as $filmTitel)
{
    $filmURL = str_replace(" ", "_", $filmTitel):
    $filmURL .= ".php";
    $filmURL = "film_anmeld/" . strtolower(substr($filmURL, 0, 1)) . "/" . $filmURL;

    echo "<a href=\"" . $filmURL . "\" target=\"_blank\">" . $filmTitel . "</a><br>";
}
?>
Avatar billede Slettet bruger
25. juli 2005 - 13:22 #24
<?
$navn = array();
$navn[]="Terkel i knibe";
$navn[]="Way of the dragon";
$navn[]="Ghost";
$navn[]="Comning to America";
$navn[]="Kops";
$navn[]="Fatal instinct";
$navn[]="7154";
$navn[]="Ålen";
echo "Film-listen:<br><br>";

sort($navn);
foreach ($navn as $filmTitel)
{
    $filmURL = str_replace(" ", "_", $filmTitel);
    $filmURL .= ".php";
    $filmURL = "film_anmeld/" . strtolower(substr($filmURL, 0, 1)) . "/" . $filmURL;

    echo "<a href=\"" . $filmURL . "\" target=\"_blank\">" . $filmTitel . "</a><br>";
}
?>

Den bør gøre det ønskede.
Avatar billede warren27 Nybegynder
25. juli 2005 - 13:27 #25
Wicez, nu finder den mappen t/Terkel_i_knibe.php
Avatar billede Slettet bruger
25. juli 2005 - 13:29 #26
Var det ikke også meningen?

Hvis det er fordi forbogstavet er stort i Terkel, kan du gøre sådan:

<?
$navn = array();
$navn[]="Terkel i knibe";
$navn[]="Way of the dragon";
$navn[]="Ghost";
$navn[]="Comning to America";
$navn[]="Kops";
$navn[]="Fatal instinct";
$navn[]="7154";
$navn[]="Ålen";
echo "Film-listen:<br><br>";

sort($navn);
foreach ($navn as $filmTitel)
{
    $filmURL = str_replace(" ", "_", $filmTitel);
    $filmURL .= ".php";
    $filmURL = "film_anmeld/" . strtolower(substr($filmURL, 0, 1)) . "/" . strtolower($filmURL);

    echo "<a href=\"" . $filmURL . "\" target=\"_blank\">" . $filmTitel . "</a><br>";
}
?>
Avatar billede warren27 Nybegynder
25. juli 2005 - 13:45 #27
wicez - tak nu virker det som det skal ;-) - jeg syntes at dig og nielle, skal dele mine point, så I må godt begge to sende mig et svar.

Men jeg har lige et spørgsmål her til sidst, hvordan løser jeg mit problem med feks en film der starter med å. For min plan var at kalde linket for film_anmeld/aa/aalen.php,
men jeg bliver jo nød til at kalde film for Ålen, når det skal står på den side hvor mine links bliver sat i alfabetisk orden. Så linket kommer så til at hedde film_anmeld/aa/ålen.php - og det skal det jo ikke være...
Avatar billede Slettet bruger
25. juli 2005 - 13:54 #28
Så skal du kalde filmen for "aalen", og bagefter lave en str_replace:

$filmtitel = str_replace("aa", "å", $filmtitel);
Avatar billede Slettet bruger
25. juli 2005 - 13:55 #29
Og jeg skal ikke have point. Jeg hijackede jo bare nielles løsning ;o)
Avatar billede warren27 Nybegynder
25. juli 2005 - 14:05 #30
Okay, så venter jeg bare på at nieller kommer og smider et svar.

ang, den koder, var det så sådan du mente ?

<?
$navn = array();
$navn[]="Terkel i knibe";
$navn[]="Way of the dragon";
$navn[]="Ghost";
$navn[]="Coming to America";
$navn[]="Kops";
$navn[]="Fatal instinct";
$navn[]="7154";
$navn[]="aalen";
echo "Film-listen:<br><br>";

sort($navn);
foreach ($navn as $filmTitel)
{
    $filmtitel = str_replace("aa", "å", $filmtitel);
    $filmURL = str_replace(" ", "_", $filmTitel);
    $filmURL .= ".php";
    $filmURL = "film_anmeld/" . strtolower(substr($filmURL, 0, 1)) . "/" . strtolower($filmURL);

    echo "<a href=\"" . $filmURL . "\">" . $filmTitel . "</a><br>";
}
?>

Det er rigtigt nok at den skal være i bunden, men der kommer ikke noget stort Å frem, måske jeg burde lave et nyt spørgsmål, så du osse kan få nogen point...
Avatar billede nielle Nybegynder
25. juli 2005 - 17:46 #31
Sådan her:

<?
$navn = array();
$navn[]="Terkel i knibe";
$navn[]="Way of the dragon";
$navn[]="Ghost";
$navn[]="Coming to America";
$navn[]="Kops";
$navn[]="Fatal instinct";
$navn[]="7154";
$navn[]="Ålen";
sort($navn);

echo "Film-listen:<br><br>";
foreach ($navn as $filmTitel)
{
    // Udgangspunkt i filmtitlen, konverteret til små bogstaver.
    $filmURL = strtolower($filmTitel);

    // Find ud af hvilket underbibliotek php-filen skal ligge i.
    $subDir = substr($filmURL, 0, 1);

    // Korrektion fot tilfældene 'æ', 'ø', og 'å'.
    switch ($subDir)
    {
        case "æ" : $subDir = "ae"; break;
        case "ø" : $subDir = "oe"; break;
        case "å" : $subDir = "aa"; break;
    }

    // Erstat 'æ' med "ae", 'ø' med "oe" og "å" med "aa".
    $filmURL = str_replace("æ", "ae", $filmURL);
    $filmURL = str_replace("ø", "oe", $filmURL);
    $filmURL = str_replace("å", "aa", $filmURL);

    // Erstat mellemrum med '_'.
    $filmURL = str_replace(" ", "_", $filmURL);

    // Lav det om sådan at det passer med en php-fil i det rigtige bibliotek.
    $filmURL .= ".php";
    $filmURL = "film_anmeld/" . $subDir . "/" . $filmURL;

    echo "<a href=\"" . $filmURL . "\">" . $filmTitel . "</a><br>";
}
?>
Avatar billede nielle Nybegynder
25. juli 2005 - 17:46 #32
... og et svar :^)
Avatar billede Slettet bruger
25. juli 2005 - 18:09 #33
Nej ellers tak, jeg behøver ikke point.

du kan vel også lave noget:

$filmtitel = preg_replace("/^Aa/", "Å", $filmtitel)
$filmtitel = preg_replace("/^Oe/", "Ø", $filmtitel)
$filmtitel = preg_replace("/^Ae/", "Æ", $filmtitel)

Men det bliver hurtigt meget lang kode.
Avatar billede Slettet bruger
25. juli 2005 - 18:10 #34
hmm.. Jeg havde ikke opdateret vinduet i en time, så jeg så ikke lige din post nielle ;o)
Avatar billede Slettet bruger
25. juli 2005 - 18:12 #35
nielle du mangler noget til at lave et stort å, hvis dette er det første tegn i titlen.

<?
$navn = array();
$navn[]="Terkel i knibe";
$navn[]="Way of the dragon";
$navn[]="Ghost";
$navn[]="Coming to America";
$navn[]="Kops";
$navn[]="Fatal instinct";
$navn[]="7154";
$navn[]="Ålen";
sort($navn);

echo "Film-listen:<br><br>";
foreach ($navn as $filmTitel)
{
    // Udgangspunkt i filmtitlen, konverteret til små bogstaver.
    $filmURL = strtolower($filmTitel);

    // Find ud af hvilket underbibliotek php-filen skal ligge i.
    $subDir = substr($filmURL, 0, 1);

    // Korrektion fot tilfældene 'æ', 'ø', og 'å'.
    switch ($subDir)
    {
        case "æ" : $subDir = "ae"; break;
        case "Æ" : $subDir = "ae"; break;
        case "ø" : $subDir = "oe"; break;
        case "Ø" : $subDir = "oe"; break;
        case "å" : $subDir = "aa"; break;
        case "Å" : $subDir = "aa"; break;
    }

    // Erstat 'æ' med "ae", 'ø' med "oe" og "å" med "aa".
    $filmURL = str_replace("æ", "ae", $filmURL);
    $filmURL = str_replace("Æ", "ae", $filmURL);
    $filmURL = str_replace("ø", "oe", $filmURL);
    $filmURL = str_replace("Ø", "oe", $filmURL);
    $filmURL = str_replace("å", "aa", $filmURL);
    $filmURL = str_replace("Å", "aa", $filmURL);

    // Erstat mellemrum med '_'.
    $filmURL = str_replace(" ", "_", $filmURL);

    // Lav det om sådan at det passer med en php-fil i det rigtige bibliotek.
    $filmURL .= ".php";
    $filmURL = "film_anmeld/" . $subDir . "/" . $filmURL;

    echo "<a href=\"" . $filmURL . "\">" . $filmTitel . "</a><br>";
}
?>
Avatar billede nielle Nybegynder
25. juli 2005 - 18:51 #36
Der er vel ingen grund til at kode for store bogstaver eftersom at føste linje i foreachløkken er:

$filmURL = strtolower($filmTitel);

- med mindre at denne da ikke vedkender sig de danske bogstaver?
Avatar billede nielle Nybegynder
25. juli 2005 - 18:53 #37
... og det er simpelthen et spørgsmål om hvorvidt PHP-installation er sat op med et dansk locale.
Avatar billede Slettet bruger
25. juli 2005 - 19:18 #38
Jeg har før haft problemer med det - derfor jeg troede det som standard var problematisk ;o) - Hvis det ikke er et problem skal der bare ses bort fra mit seneste indlæg.
Avatar billede nielle Nybegynder
25. juli 2005 - 19:19 #39
Som sagt afhænger det af localet på den aktuelle PHP installation.

Men hvis denne ikke er defineret som dansk, så virker sort() nok heller ikke helt korrekt.
Avatar billede Slettet bruger
25. juli 2005 - 19:26 #40
Naturligvis ikke ;o)  Men det er en ekstremt besværlig metode jeg valgte at skrive i scriptet ovenfor, det ville være meget nemmere at lave 2 arrays som f.eks.

$falsk  = array('å', 'Å', 'æ', 'Æ', 'ø', 'Ø');
$rigtigt = array('aa', 'aa', 'ae', 'ae', 'oe', 'oe');

$string = str_replace($falsk, $rigtig, $string);
Avatar billede warren27 Nybegynder
25. juli 2005 - 22:32 #41
Tak for hjælpen alle mand, jeg har fået det lige præcis sådan jeg havde tænkt mig det. Jeg kan se at "Ålen" har fået lige præcis det link jeg gerne ville ha den til at gøre, sejt nok.

Jeg glæder mig til at bruge det, det vil spare mig for en del tid...

endnu engang tak
Avatar billede Slettet bruger
25. juli 2005 - 22:48 #42
Velbekomme ;o)
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