[PHP] Webseite eingelesen - Zeilenumrüche und Leerzeichen entfernen

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Dayjay, 7. Juli 2009 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 7. Juli 2009
    Webseite eingelesen - Zeilenumrüche und Leerzeichen entfernen

    Hallo,

    ich lese mit dem Skript eine Webseite ein:

    PHP:
    $host  "http://www.domain.de" ;
    $filestring  file_get_contents ( $host );
    $startpos  0 ;
    while(
    $pos  strpos ( $filestring "<a href" $startpos ))
    {
        
    $string  substr ( $filestring $pos strpos ( $filestring "</a>" $pos  1 ) -  $pos );
        echo 
    $string . "</br>" ;
        
    $startpos  $pos  1 ;
    }
    Und am Ende will ich nur die Links der Webseite haben.

    Nun wäre es hilfreich wenn ich aus dem Quelltext die Leerzeichen bzw. die Zeilenumbrüche entfernen könnte. Ich meine damit nicht das <br /> und nicht das &nbsp; sondern eben die richtigen Leerzeichen, so das ich dann quasi alles in einem Block stehen habe.

    Beispiel:
    Vorher:
    HTML:
    <tr class="table1">
     <th>Number:</th>
     <td>0.2350 </td>
     </tr>
    
    Nachher:
    HTML:
    <tr class="table1"><th>Number:</th><td>0.2350</td></tr>
    Geht das? Wenn ja wie? ?(
     
  2. 7. Juli 2009
    AW: Webseite eingelesen - Zeilenumrüche und Leerzeichen entfernen

    an alle links kommst du mit nem regexp schneller, aber okay.

    wegen den leerzeichen: du kannst alle \r, \n und \t entfernen und mehrere leerzeichen zu einem zusammenfassen.

    geht ebenfalls relativ einfach mit nem regexp.

    PHP:
    $source  preg_replace ( '~[\r\n\t]+~' '' $source );
    $source  preg_replace ( '~[ ]{2,}~' ' ' $source );
     
  3. 7. Juli 2009
    AW: Webseite eingelesen - Zeilenumrüche und Leerzeichen entfernen

    Super das geht schonmal.

    PHP:
    $host  "http://www.domain.de" ;
    $filestring  file_get_contents ( $host );
    $filestring  preg_replace ( '~[\r\n\t]+~' '' $filestring );
    $filestring  preg_replace ( '~[ ]{2,}~' ' ' $filestring );  
    $startpos  0 ;
    while(
    $pos  strpos ( $filestring '<tr class="table1"><th>number:</th><td>' $startpos ))
    {
        
    $string  substr ( $filestring $pos strpos ( $filestring '</td>' $pos  1 ) -  $pos );
        echo 
    $string ;
        
    $startpos  $pos  1 ;
    }  
    Wenn ich jetzt keine Links möchte sondern alles hinter number: steht führe ich obige Version aus.

    Das Problem dabei ist das ich wirklich nur das brauche was hinter number: steht, aber als Ergebnis bekomme ich das(Quelltext):
    HTML:
    <tr class="table1"><th>number:</th><td>5386
    Aber ich brauche nur das:
    HTML:
    5386
    Wie löse ich das am dümmsten? Ich hab mir schon überlegt das ich den Teil
    HTML:
    <tr class="table1"><th>number:</th><td>
    in einer Variable speichere und anschließend den Teil aus dem Ergebnis mit substr und strpos lösche. Aber das geht doch sicherlich auch anders das ich gleich meine gewünschte Zahl bekomme oder?
     
  4. 7. Juli 2009
    AW: Webseite eingelesen - Zeilenumrüche und Leerzeichen entfernen

    Probier's mal mit str_replace
    Einfach das ungewünschte mit nichts ersetzen.

    MfG, Chrisomator
     
  5. 7. Juli 2009
    AW: Webseite eingelesen - Zeilenumrüche und Leerzeichen entfernen

    Super geht.

    Thx an alle, Bws sind raus.
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.