regex etwas kompliziert for me

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

  • regex etwas kompliziert for me

    so kurz zum prob

    ich habe einen string, drin enthalten sind urls in der form <a href=zumbeispiel.php>beispiel</a>

    so umwandeln möchte ich diese in <a href=http://www.meineurl.de/zumbeispiel.php>beispiel</a>

    soweit so gut, klappt auch
    ABER ich möchte verhindern das (wenn) eine url im string ist die schon auf externe seiten verweist (also http://) nicht umgeschrieben wird.

    hier mal mein code (mehr durch Versuche erstanden (und abschreiben) als durch Wissen )

    --
    $pattern = 'href="';
    $pattern1= 'src="';
    $url = 'http://meinedomain.de';

    $con = >string mit einigen urls<

    $con = preg_replace("/[:space:]*(href)[:space:]*=[:space:]*[\"]*([^ >]+)/", "$pattern$url/\\2", $con);

    $con = preg_replace("/[:space:]*(src)[:space:]*=[:space:]*[\"]*([^ >]+)/", "$pattern1$url/\\2", $con);

    --

    aso sollte auch für img gelten, is aber ja die gleiche zeile im prinzip

    aso die urls im string haben sind mit " eingeschlossen, klappte auch nich so recht mit dem letzten " zu finden, deshalb ein workaround mit den pattern

    Gruß erbse
    ErbseNet.de

  • #2
    hi,

    wenn ich es rech verstanden habe:
    //falls $con[] mit http:// beginnt gefolgt von
    //beliebigen zeichen ,
    //dann für deinen code nicht aus ..
    if(!preg_match=(/^(http:\/\/).[.]*/,$con[$i])){
    dein code
    }

    gruesse
    robert

    Kommentar


    • #3
      /<a([^>]*?)href( *?)=( *?)(\"?)(.*?)(\"|>)/is
      <a$1href$2=$3$4$url$5

      /<img([^>]*?)src( *?)=( *?)(\"?)(.*?)(\"|>)/is
      <img$1src$2=$3$4$url$5

      should do it...

      [Editiert von Sky am 03-02-2002 um 19:00]

      CAT Music Files

      Kommentar


      • #4
        noch nicht so recht....


        es werden zwar alle links mit der $url versehen, aber auch die links die schon mit einer http:// beginnen

        das war ja das prob....
        Und der string ist kein array sondern ein ganz normaler

        es müsste also ein !preg_match (http://) da irgendwie mit rein...
        Gruß erbse
        ErbseNet.de

        Kommentar


        • #5
          Verzeihung, hab ich ganz vergessen...

          !<a([^>]*?)href( *?)=( *?)(\"?)(?\!http://)(.*?)(\"|>)!is
          <a$1href$2=$3$4$5$url$6$7
          !<img([^>]*?)src( *?)=( *?)(\"?)(?\!http://)(.*?)(\"|>)!is
          <img$1src$2=$3$4$5$url$6$7

          CAT Music Files

          Kommentar


          • #6
            nun, klappt auch nicht. der string is danach komplett leer.....

            ist schon verflixt mit diesen klammern
            Gruß erbse
            ErbseNet.de

            Kommentar

            Lädt...
            X