Avatar billede testwatest Nybegynder
03. oktober 2007 - 16:37 Der er 9 kommentarer

Link til siden hvis den eksisterer

Hvordan har wikipedia lavet, så hvis man sætter [[..]] rundt om et ord, så tjekker den om siden eksisterer, og laver et link?
Avatar billede zurekk Nybegynder
03. oktober 2007 - 17:05 #1
Hvad mener du helt præcist med eksisterer?

Om en artikel på deres site eksisterer, eller et website eksisterer?
Avatar billede testwatest Nybegynder
03. oktober 2007 - 17:53 #2
Hvis siden ikke eksisterer, så sætter den en bestemt klasse(der gør linkfarven rød) og sætter linket til redigeringssiden af denne side - hvis derimod siden eksisterer, så er linket ganske normalt til siden der 'omtales'.
Avatar billede testwatest Nybegynder
03. oktober 2007 - 17:57 #3
Det må være noget med at omskrive nedenstående preg_replace() til en preg_replace_callback(), hvor der tjekkes om hvorvidt artiklen eksisterer.
Avatar billede gentlebug Nybegynder
03. oktober 2007 - 18:05 #4
nu benytter wikipedia(mediawiki) (så vidt jeg ved) mysql, så det er vel blot et kald i databasen og en if-else, hvis du vil lave det på filer der eksisterer i virkeligheden kan du blot lave en file_exists() - http://dk.php.net/manual/en/function.file-exists.php
Avatar billede testwatest Nybegynder
03. oktober 2007 - 19:14 #5
gentlebug - jeg tror du må vise det med kode. jeg ved godt, at jeg skal tjekke i databasen om den eksisterer, men hvordan kommer jeg dertil?
Avatar billede olebole Juniormester
03. oktober 2007 - 19:18 #6
<ole>

Det er ikke muligt at vise dig eksempler, når vi ikke kender din applikation - eller DB-struktur

/mvh
</bole>
Avatar billede testwatest Nybegynder
03. oktober 2007 - 19:57 #7
olebole - jeg vil jo ikke ha' et eksempel på hvordan jeg tjekker om den eksisterer. jeg vil vide hvordan jeg kan komme dertil.

Jeg vil tro man skal gøre noget alá nedenstående, blot med en callback, der tjekker om siden eksisterer.

preg_replace( "/\[\[(.*?)\]\]/x", "<a href="?id=\\1">\\1</a>", $text );
Avatar billede olebole Juniormester
03. oktober 2007 - 20:19 #8
Du kan evt. gøre noget à la:

<?php
function checkURL($url) {
    $parsedUrl = parse_url($url);
    $fp = fsockopen($parsedUrl["host"], 80, $errno, $errstr, 30);
    if (!$fp) {
        // echo "$errstr ($errno)<br />\n";
    } else {
        $out = "HEAD ".$parsedUrl["path"]." HTTP/1.1\r\n";
        $out .= "Host: ".$parsedUrl["host"]."\r\n";
        $out .= "Connection: Close\r\n\r\n";
   
        fwrite($fp, $out);
        $s = "";
        while (!feof($fp)) {
            $s .= fgets($fp, 128);
        }
        fclose($fp);
        return (strpos($s, "200 OK")!==false) ? true : false;
    }
}

$exists = checkURL("http://www.eksperten.dk/spm/799358");
print $exists ? "Yups" : "Nope";
?>
Avatar billede testwatest Nybegynder
05. oktober 2007 - 13:22 #9
Jamen jeg vil ikke tjekke om en side eksiterer, jeg vil bruge min preg_replace til at finde et mønster, og så kalde en funktion i en klasse, som så kigger om rækken eksisterer i min database.
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