Avatar billede okidoky Nybegynder
13. november 2005 - 19:57 Der er 8 kommentarer og
1 løsning

Url i Database

Jeg skal indsætte url i min db, med url's navn.
på min side vil jeg udskrive kun navnet, og vil linke til siden via url'et i db???hordan det?
Avatar billede jakobdo Ekspert
13. november 2005 - 20:00 #1
så laver du f.eks. en side som kunne hedde:
link.php
på den side laver du:
<?
//forbind til DB
$id = mysql_escape_string($_GET["id"]);
$query = mysql_query("SELECT url FROM links WHERE id = $id LIMIT 1");
if(mysql_num_rows($query)>0)
{
$row = mysql_fetch_assoc($query);
header("location: " . $row["url"]);
exit();
}

Så åbner du linket på denne måde: link.php?id=1
Avatar billede okidoky Nybegynder
13. november 2005 - 20:06 #2
good, jeg har lige en ting mere, jeg har tænkt meget over.

Jeg har læst nogen artikler om hvordan man hente description fra metatag og keywords, men Title er ikke i metatag, hvordan henter jeg den?
Avatar billede okidoky Nybegynder
13. november 2005 - 20:08 #3
hvis jeg f.eks. skal lave en form, med kun et textfield, hvor jeg skriver adressen på siden og så henter den title og description? har du nogen artikler som du kender om det?
Avatar billede okidoky Nybegynder
13. november 2005 - 20:12 #4
Som dette kode: når jeg trykker på submit, skal den videre til meta.php... men hvad skal være i meta.php?

<body>
<?php

    include('sql.php');
    $url = $_GET['url'];

    if ( isset( $url ) )
    {
        $tags = get_meta_tags($url);
        $time = time();
        $title = $tags['title'];
        $description = $tags['description'];
        $keywords = $tags['keywords'];

        if ( empty( $title ) || empty( $description ) || empty( $keywords ) )
        {
            echo "Der mangler metatags på siden, det er krævet at følgende findes:<br>title<br>keywords<br>description";
        }
        else
        {
            if ( preg_match( "/http:\/\/(www\.)?([^\/]+)(\/.*)?\//i", $url, $m ) )
            {
                if ( $m[1] == '' )
                {
                    $url = 'www.' . $m[2];
                }
                $host = 'http://' . $m[1];
                $path = $m[2];
                $orglink = 'http://' . $m[1] . $m[2] . $m[3];
                $nowwwlink = 'http://' . $m[2] . $m[3];
            }

            $contents = file_get_contents( $url );
            if ( $tags['title'] == '' )
            {
                if ( preg_match( '/<title>(.*?)<\/title>/is', $contents, $match ) )
                {
                    $title = $match[1];
                }
            }

            $query = mysql_query("SELECT * FROM search_data WHERE url='$url' OR url='$nowwwlink'");
            if ( mysql_num_rows( $query ) == 0 )
            {
                mysql_query("INSERT INTO search_data (url,title,description,keywords,last_check) VALUES ('$url','$title','$description','$keywords','$time')") or die(mysql_error());
            }
            else
            {
                mysql_query("UPDATE search_data SET title='$title', description='$description', keywords='$keywords', last_check='$time' WHERE url='$url' OR url='$nowwwlink'") or die(mysql_error());
            }
            echo "Denne data blev smidt i databasen, for domænet $url:<br>$title<br>$keywords<br>$description";

            //find links
            if ( strlen( $path ) > 0 && substr( $path, -1 ) != '/' )
            {
                $path = dirname( $path ) . '/';
            }
            $cnt = file_get_contents( $url );
            if ( preg_match_all( '§<a.*?href="(.*?)"§si', $cnt, $m ) )
            {
                foreach ( $m[1] as $link )
                {
                    if ( !preg_match( '!^java script:!i', $link ) && $link != '#' )
                    {
                        $link2 = '';
                        if ( !preg_match( '!^http://!', $link ) )
                        {
                            if ( $link[0] == '/' )
                            {
                                $link = $host . $link;
                                $link2 = $nowwwlink . $link;
                            }
                            else
                            {
                                $link = $host . $path . $link;
                                $link2 = $nowwwlink . $path . $link;
                            }
                        }
                        else
                        {
                            if ( preg_match( "/http:\/\/(www\.)?([^/]+)(/.*)?\//i", $link, $m2 ) )
                            {
                                if ( $m2[1] == '' )
                                {
                                    $link2 = 'http://www.' . $m2[2] . $m2[3];
                                }
                            }
                        }
                        $query = mysql_query("SELECT * FROM search_data WHERE url='$link' OR url='$link2'");
                        if ( mysql_num_rows( $query ) == 0 )
                        {
                            mysql_query("INSERT INTO search_data (url,title,description,keywords,last_check) VALUES ('$link','','','','')") or die(mysql_error());
                            echo "DEBUG: Satte $link ind uden andet data...<br>";
                        }
                    }
                }
            }
        }
    }
    else
    {
        echo '<form name="formen" method="GET" action="meta.php" enctype="multipart/form-data"><input value="http://" size="50" name="url">&nbsp;<input type="submit" value="Smid min side i søge maskinen!!"></form>';
    }

?>
</body>
</html>
Avatar billede jakobdo Ekspert
13. november 2005 - 20:12 #5
Nope!
Avatar billede okidoky Nybegynder
13. november 2005 - 20:15 #6
ok
Avatar billede jakobdo Ekspert
13. november 2005 - 20:22 #7
Et svar!
Avatar billede okidoky Nybegynder
13. november 2005 - 20:32 #8
hvordan får jeg en url's <title>Det her</title>
Avatar billede jakobdo Ekspert
13. november 2005 - 22:35 #9
Jeg ved det faktisk ikke!
Du jar jo hentet hele filen, så du kunne hente det ud med:
if (preg_match('/<title>(.*?)<\/title>/', $tekst))
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