Ergebnis 1 bis 7 von 7

Thema: Url`s automatisch in links umwandeln

  1. #1
    HTML Newbie
    Registriert seit
    25.02.2016
    Beiträge
    5
    Danke
    1
    Bekam 0 mal "Danke" in 0 Postings

    Standard Url`s automatisch in links umwandeln

    Hallo, hab mit folgendem script das Problem, das meine url`s aus der datenbankabfrage nivht in anklickbare links umgewandelt werden.
    Code:
    <?php
    
    function html_links($str) {
     $str = preg_replace('"(((f|ht){1}tp://)[a-z0-9-.] [.]{1}[a-z]{1,6}[-a-z0-9@:%_$.! *, .~#;?&//=]*)"i', '<a href="$1">$1</a>', $str);
     $str = preg_replace('"([snr>]{1}|^)((www.)[a-z0-9-]{1,255}[.]{1}[a-z]{1,6}[-a-z0 -9@:%_$.!*, .~#;?&//=] )"i', '$1<a href="http://$2">$2</a>', $str);
     $str = preg_replace('"(([snr>]){1}|mailto:|^)(([-a-z0-9@:%_$.!*,; .~#;?&//=] )@([a-z0-9-.] [.]{1}[a-z]{1,6}))"i', '$2<a href="mailto:$3">$3</a>', $str);
     $str = preg_replace('"(((f|ht){1}tp://)([0-9]{1,3}([./sn]|$){1}){4}[-a-z0-9@:%_$.!*, .~#;?&//=]*)"i', '<a href="$1">$1</a>', $str);
     return $str;
     }
    
        $host = "localhost";     
        $user = "user";            
        $pass = "password";             
        $dbase = "database";            
    
         
    
        $connection = mysql_connect("$host" , "$user" , "$pass") 
    
                      OR die ("Keine Verbindung zu der Datenbank moeglich.");
    
        $db = mysql_select_db($dbase , $connection) 
    
                      OR die ("Auswahl der Datenbank nicht moeglich."); 
                      
        $x = $_GET['nid'];
    
        $query = "SELECT * FROM files,node_revisions WHERE files.nid = '$x' AND node_revisions.nid = '$x' AND files.filename = '_original' ";
        
        $abfrage = mysql_query($query) or die (mysql_error());
        
        while ($row = mysql_fetch_array($abfrage)) {
            
            $title = $row['title'];
            $bild = $row['filepath'];
            $body = $row['body'];
            
            echo "<tr><td><strong>".$title."</strong></td></tr><br><br>";
            echo "<tr><td><img src=\"".$bild."\" title=\"\" alt=\"\"></td><tr>\n";
            echo "<tr><td><pre>".html_links($body)."</pre></td></tr><br>";
            
            echo "<a href=\"index.php\">zurück</a>";
            
        }
        mysql_close();
    ?>
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Moderator Avatar von Arne Drews
    Registriert seit
    20.01.2016
    Ort
    Friedrichstadt, NF
    Beiträge
    1.234
    Danke
    21
    Bekam 120 mal "Danke" in 119 Postings

    Standard AW: Url`s automatisch in links umwandeln

    Hallo,

    Grundsätzlich kann man dazu nur etwas sinnvolles sagen, wenn Du etwas mehr Infos gibst.
    Bspw. kennen wir Deine Funktion html_link() nicht.

    Zudem:
    • mysql_* Funktionen sind deprecated, nutze eine der Alternativen MySQLi oder PDO.
    • Nutze kein SELECT *, sondern gib die Spalten an, die Du brauchst: SELECT `title`, `filepath`, `body`
    • Wo soll der klickbare Link sein, bzw. aus welchem Feld soll der generiert werden?


    Gruß Arne

  3. #3
    HTML Newbie
    Themenstarter

    Registriert seit
    25.02.2016
    Beiträge
    5
    Danke
    1
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Url`s automatisch in links umwandeln

    Meine Funktion html_link() steht gleich am anfang von dem Code den ich gepostet habe.
    Meine SELECT-Abfrage habe ich jetzt folgendermasen umgeändert:
    PHP-Code:
    $query "SELECT files.nid, files.filepath, files.filename, node_revisions.nid, node_revisions.title, node_revisions.body FROM files,node_revisions WHERE files.nid = '$x' AND node_revisions.nid = '$x' AND files.filename = '_original' "
    Der Text der aus der Datenbank gelesen werden soll stammt aus der Tabelle "node_revision.body" und wird hier ausgelesen und soll dann in "klickbare" Links umgewandelt werden:
    PHP-Code:
    while ($row mysql_fetch_array($abfrage)) {
            
            
    $title $row['title'];
            
    $bild $row['filepath'];
            
    $body $row['body'];
            
            echo 
    "<tr><td><strong>".$title."</strong></td></tr><br><br>";
            echo 
    "<tr><td><img src=\"".$bild."\" title=\"\" alt=\"\"></td><tr>\n";
            echo 
    "<tr><td><pre>".html_links($body)."</pre></td></tr><br>";
            
            echo 
    "<a href=\"index.php\">zurück</a>";
            
        } 
    Die Ausgabe der abgefragten Dateien funktioniert, nur werden mir eben die Links aus dem Text welchen ich abfrage nicht in "klickbare" links umgewandelt.

  4. #4
    Moderator Avatar von Arne Drews
    Registriert seit
    20.01.2016
    Ort
    Friedrichstadt, NF
    Beiträge
    1.234
    Danke
    21
    Bekam 120 mal "Danke" in 119 Postings

    Standard AW: Url`s automatisch in links umwandeln

    Hallo,

    Zitat Zitat von mike36
    Meine Funktion html_link() steht gleich am anfang von dem Code den ich gepostet habe.
    Stimmt. Hatte ich übersehen.

    Zitat Zitat von mike36
    Die Ausgabe der abgefragten Dateien funktioniert, nur werden mir eben die Links aus dem Text welchen ich abfrage nicht in "klickbare" links umgewandelt.
    Ach so, Du meinst Links, die sich quasi im node_revisions.body befinden?

    Ja, Deine Pattern matchen nicht.
    Ich habe mal als Test ein ganz einfaches Pattern verwendet:
    PHP-Code:
    $str preg_replace'#((f|ht)tp://[\w.-_]+\.[a-z]{2,5})#i''<a href="$1">$1</a>'$str ); 
    Das ist zwar kein sehr genaues Pattern, aber das matcht zumindest.

    Du musst also Deine Pattern überarbeiten, der Rest des Scriptes scheint zu stimmen.

    Gruß Arne

  5. #5
    HTML Newbie
    Themenstarter

    Registriert seit
    25.02.2016
    Beiträge
    5
    Danke
    1
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Url`s automatisch in links umwandeln

    Also, du hattest Recht. Das Problem waren die Pattern. Hab jetzt die komplette Funktion total neu geschrieben und jetzt gehts.

    PHP-Code:
     function html_links($str$attributes=array()) {
      
    $attrs '';
      foreach (
    $attributes as $attribute => $value) {
        
    $attrs .= {$attribute}=\"{$value}\"";
      }
    $str ' ' $str;
    $str preg_replace(
      
    '`([^"=\'>])(((http|https|ftp)://|www.)[^\s<]+[^\s<\.)])`i',
      
    '$1<a href="$2"'.$attrs.'>$2</a>',
      
    $str
    );
    $str substr($str1);
    $str preg_replace('`href=\"www`','href="http://www',$str);
    return 
    $str;

    Hab aber absolut keine Ahnung, was da bei meinem ersten Versuch nicht gepasst hat, aber jetzt gehts ja.
    Warum einfach wenn mans auch kompliziert nachen kann.
    Vieen Dank für deine Hilfe.

  6. #6
    Moderator Avatar von Arne Drews
    Registriert seit
    20.01.2016
    Ort
    Friedrichstadt, NF
    Beiträge
    1.234
    Danke
    21
    Bekam 120 mal "Danke" in 119 Postings

    Standard AW: Url`s automatisch in links umwandeln

    Hallo,

    Warum setzt Du das erst in Backticks und entfernst die danach wieder

    EDIT: Grad gesehen, Du nutzt die als Delimiter, war ich geistig nicht drauf vorbereitet...
    Mit diesem Pattern greifst Du auch sftp und subdomains ab:
    Code:
    #(\s+)?((s?f|ht)tps?://([\w\d-]+\.)?[\d\w-]+\.[a-z]{2,5}(.*)?)(\s+)?#i
    Geht sicherlich besser, aber für Dein Zweck sollte das passen.

    Gruß Arne
    Geändert von Arne Drews (26.02.2016 um 02:11 Uhr)

  7. Folgende User finden die Antwort von Arne Drews gut:


  8. #7
    HTML Newbie
    Themenstarter

    Registriert seit
    25.02.2016
    Beiträge
    5
    Danke
    1
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Url`s automatisch in links umwandeln

    Danke,
    an sftp`s und subdomains hatte ich garnicht gedacht.

    Vielleicht sollte man einfach so spät in der Nacht nicht noch rumprogrammiern/experimentieren

Ähnliche Themen

  1. URL's in Links umwandeln
    Von LOL(OCOPTER) im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 4
    Letzter Beitrag: 10.05.2012, 12:43
  2. Youtube Link automatisch umwandeln
    Von lachfläsh im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 11
    Letzter Beitrag: 08.11.2011, 09:20
  3. links automatisch umwandeln
    Von Walerik im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 4
    Letzter Beitrag: 11.06.2008, 17:23
  4. preg_replace links umwandeln
    Von DarkSyranus im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 0
    Letzter Beitrag: 25.02.2007, 14:41
  5. Links umwandeln (kleines Problemchen...)
    Von gimp im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 10
    Letzter Beitrag: 28.11.2006, 08:33

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •