Pattern / preg_replace probs

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

  • Pattern / preg_replace probs

    Hi habe folgende Funktion:

    PHP-Code:
    function replace_uri($str) {
        
    $pattern '#(^|[^\"=]{1})([url]http://[/url]|[url]ftp://[/url]|mailto:|news:)([^\s<>]+)([\s\n<>]|$)#sm';
        
    $target='target="_blank"';
        
    $url="\\2\\3";
        echo 
    "$url";
        
    $url=substr($url05);
        return 
    preg_replace($pattern,"\\1<a href=\"\\2\\3\" $target>$url</a>\\4",$str); #Link

    Hier wird aus einem str ein Link erkannt und als Link dargestellt. Soweit eigentlich cool.
    Ich möchte aber gerne den Linkname "\\2\\3" verändern...
    Und ich weiß nicht wie ich "\\2\\3" in ein Variable zum verarbeiten bekommen...

    Der Link soll dann zb soaussehen:
    http://www.do...xyz.de
    (Will verhindern, dass die Links zu lang werden)...

    Das verändern des Strings mit "..." würde ich ja hinbekommen, das das Problem ist halt dass ich das patters (wenn das so heißt?!) nicht in eine Variable bekommen...

    Habe schon x-Varianten ausprobieren ...

    Danke im Voraus für eure hilfe!
    dreman

  • #2
    Re: Pattern / preg_replace probs

    Suchst du preg_replace_callback ...?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Re: Re: Pattern / preg_replace probs

      Original geschrieben von wahsaga
      Suchst du preg_replace_callback ...?
      Danke für den Hinweis.
      Leider konnte er nicht nicht weiterhelfen...

      Ich habe aber einen neuen Ansatz...
      Kenn mich nur leider zuwenig mit den Pattern aus...


      PHP-Code:
      function replace_uri($str) {
          
      $pattern '#(^|[^\"=]{1})(<a href="http://" target="_blank">[url]http://[/url]</a>|<a href="ftp://" target="_blank">[url]ftp://[/url]</a>|mailto:|news<img src="images/smilies/smile.gif" border="0" alt="">([^s<>]+)([s\n<>]|$)#sm';
          
      $target='target="_blank"';
          
          return 
      preg_replace($pattern,"\1<a href=\"\\2\\3\" $target>"'substr("\\2\\3", 0, 5)'"</a>\4",$str); #Link

      Ich möchte also innerhalb des preg_replace eine Funktion auf den Linknamen ("\\2\\3") machen...
      Leider scheiterts hier...

      Kann mir jemand helfen?

      Danke im Voraus!
      dreman

      Kommentar

      Lädt...
      X