strstr für den gesammten string

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

  • strstr für den gesammten string

    Hallo erstmal,

    ich möchte einen bestimmten Inhalt von einer externen HTML Seite auslesen. Ich weiss in welchem "div" der Inhalt, welcher mich interessiert, steht.
    Ich habe mal ür das Beispiel einen Computerpartner-Artikel ausgewählt.



    PHP Code:
    <?php
    $file
    ="http://www.computerpartner.de/knowledgecenter/management_karriere/203725/index.html";
    $str_handle fopen ($file"r");
    while (!
    feof($str_handle)) {
        
    $str_buffer fgets($str_handle99999);
        
    $str_buffer_1 strchr($str_buffer'<div class="DoubColDet">');
        print 
    $str_buffer_1;
    }
    fclose ($str_handle);
    ?>
    nun leider bricht der sting str_buffer_1 nach den 2 zeilumbrüchen im dem quelltext ab und zeigt nicht den gesammten Reststring.

    Was kann ich dagegen tun.

    Und wo wir schon mal dabei sind, wenn ich den kompletten Reststring erhalte, wie suche ich am besten nach dem schliessen des "div" Tag´s?

    LG und vielen Dank schon mal im vorraus für eure Hilfe.

  • #2
    PHP Code:
    preg_match_all('/<div class="DoubColDet">([^<]*)<\/div>/'
    $subject$resultPREG_PATTERN_ORDER);
    $result $result[0]; 

    Comment


    • #3
      Ich hab das mal folgendermassen übernommen
      PHP Code:
      <?php
      $str_handle 
      fopen ("http://www.computerpartner.de/knowledgecenter/management_karriere/203725/index.html""r");
      while (!
      feof($str_handle)) {
          
      $str_buffer fgets($str_handle99999);
          }
          
      preg_match_all('/<div class="DoubColDet">([^<]*)</div>/'$str_buffer$resultPREG_PATTERN_ORDER);
          
      $result $result[0];
          
      print_r($result);


      fclose ($str_handle);
      ?>
      es funktioniert bei mir nicht
      kann es sein, das steuerzeichen (, . " ') in dem string:"$str_buffer" von pregmatch falsch interpretiert werden ?

      Comment


      • #4
        was gibt denn print_r und echo str_buffer aus?

        Comment


        • #5
          PHP Code:
          $content file_get_contents("http://www.computerpartner.de/knowledgecenter/management_karriere/203725/index.html");
          preg_match('/<div class="DoubColDet">(.*)</div>/isU'$content$result);
          echo 
          $result[1]; 
          Ungetestet, sollte aber klappen

          Comment


          • #6
            @Koala
            gibt fehlerfeldung zurück
            Warning: preg_match() [function.preg-match]: Unknown modifier 'd' in ..

            in der str_buffer ist der gesammte quelltext der http://....index.html

            @Manni_the_Dark gibt die selbe Fehlermeldung aus

            Comment


            • #7
              Öhm, sorry. Hab vergessen / zu escapen. Nochmal:
              PHP Code:
              $content file_get_contents("http://www.computerpartner.de/knowledgecenter/management_karriere/203725/index.html");
              preg_match('#<div class="DoubColDet">(.*)</div>#isU'$content$result);
              echo 
              $result[1]; 

              Comment


              • #8
                immernoch der selbe fehler

                preg_match_all verstehe ich irgentwie nicht

                immer wenn ich was damit mache oder was übernehme funktioniert es garantiert nicht

                Comment


                • #9
                  da ich ja nicht faul bin und wie gesagt mit pregmatch nur böse erfahrungen gemacht habe, habe ich mir einen anderen weg ausgedacht

                  das ganze hat den vorteil, das es sich nicht gleich beim ersten "</div" tag aufhört, es kann ja sein das ein weiterer tag eröffnet und wieder geschlossen wurde

                  PHP Code:
                  <?php
                  $str_handle 
                  fopen ("http://www.computerpartner.de/knowledgecenter/management_karriere/203725/index.html""r");
                  $int_div=1;
                  while (!
                  feof($str_handle))
                    {
                    
                  $str_buffer fgets($str_handle99999);
                    
                  $str_buffer_1 strchr($str_buffer'DoubColDet">');
                    
                  //stelle1
                    
                  if($str_buffer_1!=false)
                      {
                      
                  $int_speichern=1;
                      }
                    
                  //stelle2
                    
                  if($int_speichern==1)
                      {
                      
                  //stelle3  
                      
                  $str_ausgabe $str_ausgabe.$str_buffer;
                      
                  $str_buffer_2 strchr($str_buffer'</div>');
                      if(
                  $str_buffer_2 != false)
                        {
                        
                  $int_div--;
                        }
                      
                  $str_buffer_3 strchr($str_buffer'<div>');
                      if(
                  $str_buffer_3 != false)
                        {
                        
                  $int_div++;
                        }
                      }
                    if(
                  $str_div==0)
                      {
                      
                  $int_speichern=0;
                      }
                    print 
                  $str_ausgabe/**/
                    
                  }
                  fclose ($str_handle);
                  allerdings, wie soll es auch anders sein, hab ich auch hier probleme an dennen ich alleine nicht vorbeikomme

                  bei "//stelle 1+2" ist $str_buffer auslesbar
                  bei "//stelle 3" nicht

                  also ich gebe ja zu, ich habe nicht all zu viel ahnung von php, aber nur weil eine neue "if" abfrage kommt verschwindet doch nit der inhalt einer variable
                  Last edited by Bargus; 11-05-2006, 14:52.

                  Comment

                  Working...
                  X