preg_match

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • preg_match

    Hallo,

    ich habe eine Datei welche aus mehreren Zeilen besteht.
    Der Aufbau aller Zeilen ist jedoch gleich. Nur halt immer andere Werte.

    Eine mögliche ZeileDatum kann variieren)
    .......,06-Sep-05,...

    Jetzt möchte ich das er mir die Zeilen ausgibt wo das Datum 06-Sep-05
    ist.

    PHP Code:
    $Date date("d-M-y",mktime(000date("m")  , date("d")-1date("Y")));
    echo 
    $Date."<br>";

    $fp fopen("...file.""r");
    while (
    $line fgets($fp1000))
    {
    if(
    preg_match("/^*[[".$Date."]]+*$/"$line))
    {
    echo 
    fgets($fp1000) . "<br />";
    }
    }
    fclose($fp); 
    Aber erschreibt mir immer folgende Fehlermeldung:
    Compilation failed: nothing to repeat at offset ?!? ka was sie bedeutet.

    der Fehler liegt an der preg_match Funktion.
    Aber auch so
    PHP Code:
    preg_match("/^\[[".$Date."]+\]/"$line)) 
    klappt es nicht.

    Kann mir jemand bei dem Ausdruck helfen?

    Danke
    Last edited by galaxy2; 07-09-2005, 11:11.

  • #2
    Re: preg_match

    Compilation failed: nothing to repeat at offset ?!? ka was sie bedeutet.
    du hast nen quantifier benutzt, der sich auf nichts bezieht, weil höchstwahrscheinlich vor ihm nichts steht, was man wiederholen könnte, z.b. ein ^ im sinne einer assertion. du hättest den offset mal mit angeben können ...
    Aber auch so
    [...]
    klappt es nicht.
    was heißt 'klappt nicht'?

    du brauchst auf jeden fall den punkt als metazeichen, den du wohl beliebig oft wiederholen willst. desweiteren brauchst du modifier m und eventuell U, und preg_match_all() mußt du verwenden.

    laß dir den regexp mal aisgeben, den du da generierst, man weiß ja nie ... und mach dich mal schlau ...

    http://www.php-resource.de/tutorials/read/10/1/
    http://regexp-evaluator.de/tutorial.html
    http://regexp-evaluator.de/tutorial-...to-repeat.html
    Last edited by derHund; 07-09-2005, 12:32.
    Die Zeit hat ihre Kinder längst gefressen

    Comment


    • #3
      So klappt es:



      PHP Code:

      $Date 
      date("d-M-y",mktime(000date("m")  , date("d")-1date("Y")));
      echo 
      $Date."<br>";

      $fp "..file..";

      $filearray file($fp);
      print_r($filearray);
      $number count($filearray);
      echo 
      $number."<br>";
      $pattern "/^(.*)(".$Date.")(.*)$/ims";
      for(
      $i=0;$i<$number;$i++)
      {
      $word $filearray[$i];
      echo 
      $i;
      if(
      preg_match($pattern$word))
      {
      echo 
      "<font color=red>".$word"</font><br />";
      }
      else{
           echo 
      "<font color=green>".$word"</font><br />";
          }

      Comment

      Working...
      X