Avatar billede kingrex666 Nybegynder
02. februar 2005 - 17:30 Der er 17 kommentarer og
1 løsning

automatisk link dannelse udfra del af navn

hej folkens
jeg har en hjemmeside hvor jeg har med opskrifter på og jeg søger et php script som kan genererer links udfra filens navn og skrive linket så der står i linket hvad der står i titlen i filen.

f.Eks.

Jeg har nogle fiske opskrifter i en mappe med navn 'fisk'. I denne mappe ligger der to slags filer: for_xxx_1.php og hov_xxx_1.php.

Jeg vil gerne via en side med forretter på linke til alle filer der begynder med 'for' og ligger i mappen fisk.

og en anden side med hovedretter linke til alle filer der begynder med 'hov' og ligger i mappen fisk.

Dernest ville det være dejligt hvis det kunne 'udskrive' linket med filens titel.

Desuden vil jeg gerne selv bestemme hvilke side der skal linke til hvad så ikke alle links bliver 'udskrevet' på samme side. men der hvor jeg vælger. Altså forretter på forrets siden
og hovderetter på en anden side med hovderetter.

Det må/skal laves sådan at jeg selv kan tilføje nye mapper og nye navne på.

Er der nogle der kan lave sådan et script til mig eller ved hvor det ligger.

/Rasmus
Avatar billede tigertool Nybegynder
09. februar 2005 - 18:08 #1
Jeg har lige skrevet en lille function - jeg er ikke sikker på om det er det du ønsker, så du må lige vende tilbage med en kommentar. Functionen medtager 2 parametere $dir og $type.

Forklaring:
$dir ~ mappen som skal gennemsøges
$type ~ om det skal være 'hov' eller 'for'

Funktionen kaldes f.eks.:
request("fisk","for");

Ovenstående vil udskrive alle filer der er i mappen 'fisk' og begynder med 'for'


### Funktion
function request($dir, $type)
{
        $d_read = opendir($dir);
        while ($file = readdir($d_read))
        {
                if ($file != "." && $file != ".." && $file != "incl.conf")
                {

                        if (substr($file,0,3) == $type)
                        {
                                echo $file."<br>";
                        }
                }
        }
}
Avatar billede tigertool Nybegynder
09. februar 2005 - 18:09 #2
Rettelse:
### Funktion
function request($dir, $type)
{
        $d_read = opendir($dir);
        while ($file = readdir($d_read))
        {
                if ($file != "." && $file != "..")
                {

                        if (substr($file,0,3) == $type)
                        {
                                echo $file."<br>";
                        }
                }
        }
}

Skal se således ud.
Avatar billede kingrex666 Nybegynder
10. februar 2005 - 18:02 #3
Vil meget gerne prøve denne funktion men vil lige spørge om hvordan mit link kommer til at se ud ??? hvis min side hedder 'for_rejer_1.php' og titlen på siden hedder 'Lime marineret rejer m/advocad' skulle linket meget gerne hedder 'Titel' !!

Men jeg prøver lige og vender tilbage
Avatar billede kingrex666 Nybegynder
10. februar 2005 - 18:14 #4
Jeg har gjort følgende:

<?php
$dir;
$type;

request("mad/fisk","for");



function request($dir, $type)
{
        $d_read = opendir($dir);
        while ($file = readdir($d_read))
        {
                if ($file != "." && $file != "..")
                {

                        if (substr($file,0,3) == $type)
                        {
                                echo $file."<br>";
                        }
                }
        }
}
?>

Og dette udskriver filens navn med endelsen... Det som jeg efterlyste var at det udskrev et link til filen og linkets navn skulle være filens titel.
Avatar billede tigertool Nybegynder
10. februar 2005 - 18:24 #5
Jamen så skal echo'et jo bare ændres?

Til noget i stil med: echo "<a href='$dir/$file'>".$file."</a><br>";
Avatar billede kingrex666 Nybegynder
10. februar 2005 - 18:37 #6
cool nok virker men.... hvad med navnet fra filens titel?
Avatar billede tigertool Nybegynder
10. februar 2005 - 18:49 #7
Hvad mener du?
Avatar billede kingrex666 Nybegynder
10. februar 2005 - 20:09 #8
Denne sætning : echo "<a href='$dir/$file'>".$file."</a><br>";

udskriver filens navn.

Det link jeg gerne vil have frem på siden skal ikke hedde filens navn men det der står inder i filens titel. altså <titel>marineret rejer</titel> det der står inde i dette tag skal være linket = echo "<a href='$dir/$file'>".$TITEL FRA FIL."</a><br>";
Avatar billede tigertool Nybegynder
10. februar 2005 - 21:32 #9
function getTitle($file, $dir)
{
        $handle = fopen($dir."/".$file, "r");
        $contents = '';
        while (!feof($handle))
        {
                $contents .= fread($handle, 8192);
        }
        fclose($handle);

        $contents = spliti("<title>", $contents);
        $contents = spliti("</title>", $contents[1]);
        return $contents[0];
}

function request($dir, $type)
{
        $d_read = opendir($dir);
        while ($file = readdir($d_read))
        {
                if ($file != "." && $file != ".." && $file != "incl.conf")
                {
                        if (substr($file,0,3) == $type)
                        {
                                echo "<a href='$dir/$file'>".getTitle($file,$dir)."</a><br>";
                        }
                }
        }
}
Avatar billede tigertool Nybegynder
10. februar 2005 - 21:32 #10
Tjek lige om det virker :)
Avatar billede kingrex666 Nybegynder
10. februar 2005 - 21:43 #11
det virker perfekt....

Lige en ting til. Ved ikke om det kan lade sig gøre?

Jeg er ved at lave hele min side om og ved dette bruger jeg include tags som dette :

if ($_GET['id'] === "1" || !isset($_GET['id'])) include('forside.php');
if ($_GET['FileID'] === "2") include('Opskrifter.php');
if ($_GET['FileID'] === "3") include('tips.php');
if ($_GET['FileID'] === "4") include(kok.php');

hvilket virker godt nok. MEN hvis jeg nu bruger denne lille script som du har kommet med og som virker, kan jeg på en eller anden måde få det ind i include taget? mit link ser jo sådan ud : index.php?id=3 det includerer ja da side 3 i include taget men dette : echo "<a href='$dir/$file'>".getTitle($file,$dir)."</a><br>";
loade jo en helt ny side udenom include ... altså hvordan beholder jeg mad links inde i include???
Avatar billede kingrex666 Nybegynder
10. februar 2005 - 21:50 #12
Forresten .... kan jeg styre i hvilken række følge linkene bliver skrevet (jeg ville jo gerne at når jeg oploadet en ny opskrift skulle denne ligge i toppen på link siden) jeg kan ikke bruge filens dato da dette bliver ændret hvergang jeg gen-oploader (ikke fordi jeg gør det tit, men det kan ske at jeg laver en ændring som ikke skal påvirke linkets placering)
Avatar billede tigertool Nybegynder
10. februar 2005 - 22:03 #13
ad 1) Jeg forstår ikke hvor du vil hen, men du kan jo bare smide mine funktioner i en fil for sig selv og include dem efter behov? Er det sådan noget?

ad 2) Nej, desværre. PHP indlæser vist bare filerne tilfældigt (http://dk2.php.net/manual/en/function.fread.php) Man kunne jo evt lave det efter en dato der lå i filerne, men det gør koden lidt mere kompleks.
Avatar billede kingrex666 Nybegynder
10. februar 2005 - 22:14 #14
ad 1.

- selve linket som siden producerer = http://www.2kokke.dk/mad/fisk/for_hellefisk_1.php hvilket resulterer i at linket åbner en ny side (ikke browser vindue) og ikke i include taget. i din funktion kan man da skrive noget med <a href=index.php?id='$dir/$file'> eller sådan noget så den side der bliver hentet bliver hentet ind i include ... Eller har jge misset et eller andet med hvordan man gør?

ad 2.

- Vil det sige at hvis jeg skriver en dato med håndkraft ind i selve filen, så kan jeg kalde denne via en funktion og soterer dem i den rækkefølge jeg vil? (kan du lave det)

uanset hvad du laver eller om du kan elle vil så smid et svar da jeg er glad for din hjælp og faktisk jo allerede har fået svar på mit problem.


læser artiklen en anden da skal ind til konen .... du ved hvordan de kan blive hvis man sidder for lang tid foran skærmen ... vender tilbage i morgen.
Avatar billede tigertool Nybegynder
10. februar 2005 - 22:17 #15
Ok. Jeg smider et svar. Jeg vil tro jeg sagtens kan lave det med dato sorteringen. Vedr. 1) så kan du sagtens tilpasse det således. Det er der intet problem i.
Avatar billede kingrex666 Nybegynder
10. februar 2005 - 22:22 #16
Kæmpe tak

lige en ting er det sådan at du kan give en ledetråd til hvordan ad1 kan tilpasses. Jeg vil gerne indrømme at jeg er rimelig grøn til php.
Avatar billede kingrex666 Nybegynder
10. februar 2005 - 22:22 #17
løber vender tilbage i morgen
Avatar billede kingrex666 Nybegynder
11. februar 2005 - 11:15 #18
hej igen

jeg har fundet ud af at denne virker

<?
if ($_GET['side']) include($_GET['side']);
?>

og linket

echo "<a href='index.php?side=$dir/$file'>".getTitle($file,$dir)."</a><br>";
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