Logo - MyWebsolution.de
User gesamt  :  2453381
User online  :  4
KubaSeoTräume, PHP Forum, PHP Community and more ... MyWebsolution.de!
   
   
 
Registrieren Login User F.A.Q Suche Home

eingeloggt bleiben

MyWebsolution.de Foren » Tutorials » bbcodes tutorial

Seite: <  1 2 3 4 5 6 7 8 Posts pro Seite: 5 10 20
Autor Thread
14.01.2008 16:31 Uhr
TaLun
User
 
registriert 14.01.2008
wohnt in
Beiträge 1
Also ich habe das selbe problem wie fish.
Wenn kein http:// vorgegeben wird, dann verlinkt er nicht sauber.
Ich habe meinen Code in eine Function gebaut und die linklenght als eigene unveränderte. Der code sieht bei mir so aus:

PHP:
//URL [url=pfad]Name[/url]
    //Function linkLenght beachten!!!
        $text = preg_replace_callback("/\[url=(.*)\](.*)\[\/url\]/Usi", 'linkLenght', $text);
        // "reine" URLs umwandeln
    $text = preg_replace_callback('#(( |^)(((ftp|http|https|)://)|www.)\S+)#mi', 'linkLenght', $text);


Wenn man also in irgendeiner Form (mit und ohne Linknamen) das http nicht schreibt wird der link wie bei fish aufgebaut.
Auch ist das bei der "reinen"url so. www.test.de wird gewandelt aber falsch und http://www.test.de wird bei mir komplett ignoriert.

Hast Du da ein Tip, was das Problem sein kann?

Edit:
ich lege nochmal den code für die function linklenght rein:
PHP:
// Prüft die Linklänge und passt sie gegebenenfalls an
// wird für preg_replace_callback definiert
    function linkLenght($treffer)
    {
        // $treffer[1] ist die URL
        $url = trim($treffer[1]);
        // $treffer[2] ist der Ausgabename
        // wurde kein Name angegeben, wird die URL als Name gewählt
        if(strlen(trim($treffer[2]))!=0)
            $linkname = $treffer[2];
        else
            $linkname = $treffer[1];
        // legt eine maximale Länge von 50 Zeichen fest
        // Ausnahme bei [img]-Tags
        if(strlen($linkname)>50 AND !substr_count(strtolower($linkname), '[img]') AND !substr_count(strtolower($linkname), '[/img]'))
            $linkname = substr($linkname, 0, 45-3)."...".substr($linkname, -5);
         // Rückgabelink
        $ergebnis = "<a href=\"".$url."\" target=\"_blank\">".$linkname."</a>";
        return $ergebnis;
    } 


Dieser Beitrag wurde am 14.01.2008 um 16:33:39 Uhr von TaLun zum 1. Mal editiert.
Profil ansehen
19.01.2008 22:23 Uhr
Flitze
Administrator
registriert 17.10.2006
wohnt in Eschwege
Beiträge 332
Hm da fehlen 2 Zeilen..

Hier mal mein Code:

PHP:
<?php
    
// Prüft die Linklänge und passt sie gegebenenfalls an
    // wird für preg_replace_callback definiert
    
function linkLenght($treffer)
    {
        
// $treffer[1] ist die URL
        
$url trim($treffer[1]);
        if(
substr($url,0,7)!= 'http://' AND substr($url,0,6)!= 'ftp://')
                
$url "http://".$url;
        
// $treffer[2] ist der Ausgabename
        // wurde kein Name angegeben, wird die URL als Name gewählt
        
if(strlen(trim($treffer[2]))!=0)
                
$linkname $treffer[2];
        else
                
$linkname $treffer[1];
        
// legt eine maximale Länge von 50 Zeichen fest
        // Ausnahme bei [img]-Tags
        
if(strlen($linkname)>50 AND !substr_count(strtolower($linkname), '[img]') AND !substr_count(strtolower($linkname), '[/img]'))
                
$linkname substr($linkname045-3)."...".substr($linkname, -5);
        
// Rückgabelink
        
$ergebnis "<a href=\"".$url."\" target=\"_blank\">".$linkname."</a>";
        return 
$ergebnis;
    }
?>



Profil ansehen Mail senden
Seite: <  1 2 3 4 5 6 7 8 no reply
Powered by Pascal Landau © 2006 MyWebsolution.de
Designed by Pascal Landau © 2006 MyWebsolution.de
 
 
 
 
Home Email Impressum Disclaimer Statistik