strstr für den gesammten string

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

  • 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]; 

    Kommentar


    • #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 ?

      Kommentar


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

        Kommentar


        • #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

          Kommentar


          • #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

            Kommentar


            • #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]; 

              Kommentar


              • #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

                Kommentar


                • #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
                  Zuletzt geändert von Bargus; 11.05.2006, 15:52.

                  Kommentar

                  Lädt...
                  X