reguläre ausdrücke

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

  • reguläre ausdrücke

    also mit folgenden code kann ich links auslesen + ausgeben:


    quote:
    --------------------------------------------------------------------------------

    $text2[][] = preg_match_all("/<a href=(.*?)<\/a>/siS", $text, $text2);

    $max=20;
    for ($i=0; $i<$max; $i++)
    {
    $p = preg_split("[>]", $text2[1][$i]);
    echo "° <a href=\"", $url1b, $p[0], "\" target=\"_blank\">", $p[1], "</a><br>";
    }

    --------------------------------------------------------------------------------



    wie kann ich das jetzt so filtern, dass nur bestimmte links berücksichtigt werden.

    z.b. nur links wo HALLO vorkommt, also

    http://www.irgendwasHALLOuiouiouoi.de = ja
    http://www.irgendwasi.de =nein


    -> was muss ich hier ändern:
    $text2[][] = preg_match_all("/<a href=(.*?)<\/a>/siS", $text, $text2);
    ?

  • #2
    Re: reguläre ausdrücke

    etwa so :

    $text2[][] = preg_match_all("/<a href=(.*hallo.*?)<\/a>/siS", $text, $text2);
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      hm funzt irgendwie nicht:
      --
      test.txt:
      Code:
      <img src="klk.gif" border=0>
      
      jkklöjöklj
      
      <a href="linkurl.php">linktext</a>
      <a href="linkurl2.php"><img src="lll.gif"></a>
      <a href="Linkooourl3.php">linktext3</a>
      <a href="Linkooourl4.php">linktext4</a>
      lökäöl<a href="linkurl5.php">linktext5</a>
      <a href="linkurl6.php">linktext6</a><a href="linkurl7.php">linktext7</a> <a href="linkurl8.php">linktext8</a>
      <a href="linkurl9.php">linktext9</a>
      kjölk
      --
      datei.php:
      Code:
      <?
      $datei = "test.txt"; 
      $text = join('', file($datei));
      
      $text2[][] = preg_match_all("/<a href=(.*ooo.*?)<\/a>/siS", $text, $text2);
      
      
      $max=10; 
      for ($i=0; $i<$max; $i++)
      {
      $p = preg_split("[>]", $text2[1][$i]); //$p = explode (">", $text2[1][$i]);
      echo "° <a href=\"", $url1b, $p[0], "\" target=\"_blank\">", $p[1], "</a><br>";
      }
      ?>

      bei meinen ersten vorschlag werden alle links gefunden und ausgegeben:
      sieht dann ungefähr so aus:
      linktext
      °
      ° linktext3
      ° linktext4
      ° linktext5
      ° linktext6
      ° linktext7
      ° linktext8
      ° linktext9


      bei deiner version kommt als qausgabe nur:
      linktext
      °

      ->in test.txt sind aber zwei links mit ooo, und diese heißen auch linktext3 bzw.4 ???

      wo liegt der fehler???

      Kommentar


      • #4
        also ich würd da dein link test drüber ergehen lassen und dann danach einfach per ereg() rausfinden, ob hallo drin vorkommt
        tata
        moqui

        [COLOR=red]Ich will keine unaufgeforderten Mails über PHP Fragen. Es gibt ein Forum hier! Und ich bin nicht Scripter für jeden, der mir ne Mail schreibt![/COLOR]

        Kommentar


        • #5
          preg_match_all("/<a href=.*o{3}.*<\/a>/i", $text, $text2);
          die modifier waren falsch
          Beantworte nie Threads mit mehr als 15 followups...
          Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

          Kommentar


          • #6
            ok, danke

            Kommentar

            Lädt...
            X