Ankündigung

Einklappen
Keine Ankündigung bisher.

hilfe bei preg_replace

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • hilfe bei preg_replace

    ich habe folgendes in meiner shoutbox um links als klickbare links zu ersetzten
    PHP-Code:
    $text $row['message'];

    //Aus http://url wird [URL]http://url[/URL]
    $urlsuch[]="/([^]_a-z0-9-=\"'\/])((https?|ftp):\/\/|www\.)([^ \r\n\(\)\^\$!`\"'\|\[\]\{\}<>]*)/si";
    $urlsuch[]="/^((https?|ftp):\/\/|www\.)([^ \r\n\(\)\^\$!`\"'\|\[\]\{\}<>]*)/si";

    $urlreplace[]="\\1[URL]\\2\\4[/URL]";
    $urlreplace[]="[URL]\\1\\3[/URL]";

    //Aus [email]klaus@mustermann.de[/email] wird [EMAIL]klaus@mustermann.de [/EMAIL]
    $emailsuch[]="/([\s])([_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,}))/si";
    $emailsuch[]="/^([_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,}))/si";

    $emailreplace[]="\\1[EMAIL]\\2[/EMAIL]";

    $emailreplace[]="[EMAIL]\\0[/EMAIL]";

    $text preg_replace($urlsuch$urlreplace$text);
    if (
    strpos($text"@"))
        {
        
    $text preg_replace($emailsuch$emailreplace$text);
        }
        
    $host  $_SERVER['HTTP_HOST'];
    $uri  rtrim(dirname($_SERVER['PHP_SELF']), '/\\');    
        
        
    $pfad "/e107_plugins/shoutbox/system/";

    //Die URL's werden zu Links
    $text preg_replace("/\[URL\]www.(.*?)\[\/URL\]/si""<a target=\"_blank\" title=\"http://www.\\1\"href=\"http://www.\\1\"><img src=\"http://".$host."".$uri."/system/link.png\" width=\"32\" height=\"32\"></a>"$text);

    $text preg_replace("/\[URL\](.*?)\[\/URL\]/si""<a target=\"_blank\"title=\"http://www.\\1\" href=\"\\1\"><img src=\"http://".$host."".$uri."/system/link.png\" width=\"32\" height=\"32\"></a>"$text);

    $text preg_replace("/\[URL=www.(.*?)\](.*?)\[\/URL\]/si""<a target=\"title=\"http://www.\\1\"_blank\" href=\"http://www.\\1\"><img src=\"http://".$host."".$uri."/system/link.png\" width=\"32\" height=\"32\"></a>"$text);

    $text preg_replace("/\[URL=(.*?)\](.*?)\[\/URL\]/si""<a target=\"_blank\" title=\"http://www.\\1\"href=\"\\1\"><img src=\"http://".$host."".$uri."/system/link.png\" width=\"32\" height=\"32\"></a>"$text);

    //E-Mail Adressen werden zu links
    $text preg_replace("/\[EMAIL\](.*?)\[\/EMAIL\]/si""<a title=\"mailto:\\1\"href=\"mailto:\\1\"><img src=\"http://".$host."".$uri."/system/mail.png\" width=\"32\" height=\"32\"></a>"$text);

    $text preg_replace("/\[EMAIL=(.*?)\](.*?)\[\/EMAIL\]/si""<a title=\"mailto:\\1\"href=\"mailto:\\1\"><img src=\"http://".$host."".$uri."/system/mail.png\" width=\"32\" height=\"32\"></a>"$text);

    //[IMG]bild.jpg[/IMG] wird als Bild angezeigt
    $text preg_replace("/\[IMG\](.*?)\[\/IMG\]/si""<img src=\"\\1\" border=\"0\"style=\"width:32px\">"$text); 
    das geht alles wunderbar nun habe ich smilis eingebaut

    direkt unter den letzten oben genannten code
    PHP-Code:
    //smily abruf und replace
    $sql2 "SELECT * FROM ".MPREFIX."shoutbox_smilys";
    $result2 mysql_query($sql2);
    while(
    $row2 mysql_fetch_object($result2))
    {
      
    $text str_replace($row2->coding,"<img src='".$row2->smile."'>"$text);
    }
    //ende smilys
                    
    $result .= "<li class='shout'><strong>".$row['user']."</strong><br />".$text." <br /><span class=\"date\">".$row['date']."</span></li>"
    das geht alles soweit nur leider geht es nicht mehr wenn ich ein link eintrage wenn ich das so in das text feld eingebe

    PHP-Code:
    http://127.1.1.0/e107/news.php 
    kommt so ein quatsch dabei raus

    PHP-Code:
    <a href="http://www.&lt;img src='e107_plugins/shoutbox/smilies/lazycrasy/32 (11).png'&gt;is-e107.de/theme/news.php" title="http://www.http://www.&lt;img src='e107_plugins/shoutbox/smilies/lazycrasy/32 (11).png'&gt;is-e107.de/theme/news.php" target="_blank"><img width="32" height="32" src="http://127.1.1.0/e107/e107_plugins/shoutbox/system/link.png"></a

    er mix das alles

    die smilys werden mit kompletten link eingetragen

    das heist er wandelt ja den code in
    PHP-Code:
    <img src='".$row2->smile."'
    um.

    das $row2->smile ist in der datenbank so :
    PHP-Code:
    http://www.hupsis-e107.de/theme/e107_plugins/shoutbox/smilies/lazycrasy/32 (6).png 
    ich brauche dort den vollen link

    nur leider baut er den nun mitten in den href ein ?

    ich hoffe ihr habt mein problem verstanden wo oder wie kann ich das ändern ****

    die smilys gehen super da hab ich kein problem


  • #2
    Nö, er wandelt einfach ‘hups’ um.
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      ?? wie meinen ??

      Kommentar


      • #4
        Du hast einen Smiley "hups" und "hups" in deiner URL. Sieh zu, dass du die Ersetzungen in der richtigen Reihenfolge machst und Smileys z.B. nicht innerhalb von HTML-Attributen ersetzt. Oder verzichte einfach darauf, Wörter zu Smileys zu machen (üblich ist da eher so etwas: :hups: )
        @fschmengler - @fschmengler - @schmengler
        PHP Blog - Magento Entwicklung - CSS Ribbon Generator

        Kommentar

        Lädt...
        X