[php] regexps

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

  • [php] regexps

    hi leute ich hab nen dickes problem mit den regexps, ich kriegs das partout nicht hin! kann mir bitte einer helfen?

    ich hab die links in dem format:
    Code:
    <li><a href="http://www.pop2web.de/">pop2web.de</a> - Webbasierte Abfrage von POP3-Mailboxen. Erforderlich: Login, Passwort und Name des Mailservers.
    nun möchte ich das mir preg_match alle sachen entfernen tut ausser die url, die urlbeschreibung (also das zwischen <a> & </a>), und das nach dem bindestrich.
    NUr hab ich keine ahnung wie ich das hinbekommen kann!
    Vielen Dank im voraus

    mfg max

  • #2
    $hack = "|(href=\")(.*?)(\">)|s";
    $code = "\\2";
    $string = preg_replace($hack,$code,$string);

    könnte gehen... ;-)
    Gruß
    Thomas

    Kommentar


    • #3
      danke, meint aber was anderes =)

      hihi danke, aber das is nicht das was ich wollt hab mich mal wohl wieder falsch ausgedrückt *hmpf*

      ne ich wollt das so wissen wie ich preg_macth oder mit nem anderen regexp befehl, die teile der urls (also: url, urldesc und beschreibung) in nen nen array bekomm, ich weis das das mit den regexp geht, nur weis ich den befehl net verdammt

      kannst du mir nomal helfe? =)
      mfg max

      Kommentar


      • #4
        ahja - Du hast einen String und hättest hinterher gerne ein array in der Art:
        array[0][url] -> Url
        array[0][desc] -> Beschreibung

        Ich gehe mal davon aus das Du die Quelle per Script einließt,
        dann kannst Du pro Zeile die RegEx drüberlaufen lassen und in dem array hinzufügen...

        ... zeile einlesen ... {
        $hack = "|(href=\")(.*?)(\"> )|s";
        $code = "\\2";
        $link_array[$i][url] = preg_replace($hack,$code,$string);
        $hack = "|(>)(.*?)(\n\r)|s";
        $code = "\\2";
        $link_array[$i][desc] = preg_replace($hack,$code,$string);
        }
        Gruß
        Thomas

        Kommentar


        • #5
          hmm

          hmm danke! aber das funzt leider nicht!
          hab von nem kolleg den tipp bekommen ich sollte preg_match nehmen und hat mir nen besipiel gegeben das allerdingsnur urls die mit www. beginnen und mit / aufhören parst.

          nu mein problem is jetz, das scritpt funzt nu, nur werden jetz nur die links gesppeicher die wie oben gesagt mit www. und / beginnen/enden. es gibt aber auch viele links die subdomains haben oder wo der link auf ne file gelinkt is

          nur ich weis absolut nix über die regexps unddaher würd ich dich gerne noch einmal um rat fragen

          hier der code
          $str = '<a href="http://www.pop2web.de/">LinkName: pop2web.de</a>';

          preg_match("/^(<a href=\"http:\/\/)(www\.[\w_\-\.]+\.[a-z]{2,4}[\/]?)\">(.*)(<\/a>)$/",$str,$match);

          print "<pre>";
          print_r($match);
          print "</pre>";

          vilen dank und hoffentlich hab ich mir gut genug ausgedrückt =)
          mfg max

          Kommentar

          Lädt...
          X