Website auslesen und Funktion drüberlaufen lassen

Identität

Erfahrenes Mitglied
Hallo Leute,

ich hänge gerade am folgendem PHP-Code fest:

PHP:
<?php

    function strip_html_tags( $text )
    {
        $text = preg_replace(
            array(
              // Remove invisible content
                '@<head[^>]*?>.*?</head>@siu',
                '@<style[^>]*?>.*?</style>@siu',
                '@<script[^>]*?.*?</script>@siu',
                '@<object[^>]*?.*?</object>@siu',
                '@<embed[^>]*?.*?</embed>@siu',
                '@<applet[^>]*?.*?</applet>@siu',
                '@<noframes[^>]*?.*?</noframes>@siu',
                '@<noscript[^>]*?.*?</noscript>@siu',
                '@<noembed[^>]*?.*?</noembed>@siu',
              // Add line breaks before and after blocks
                '@</?((address)|(blockquote)|(center)|(del))@iu',
                '@</?((div)|(h[1-9])|(ins)|(isindex)|(p)|(pre))@iu',
                '@</?((dir)|(dl)|(dt)|(dd)|(li)|(menu)|(ol)|(ul))@iu',
                '@</?((table)|(th)|(td)|(caption))@iu',
                '@</?((form)|(button)|(fieldset)|(legend)|(input))@iu',
                '@</?((label)|(select)|(optgroup)|(option)|(textarea))@iu',
                '@</?((frameset)|(frame)|(iframe))@iu',
            ),
            array(
                ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
                "\n\$0", "\n\$0", "\n\$0", "\n\$0", "\n\$0", "\n\$0",
                "\n\$0", "\n\$0",
            ),
            $text );
        return strip_tags( $text );
    }


    $url = 'http://www.domain.de';
    $result = get_web_page($url);
    $page = $result['content'];
    $utf8_text = strip_html_tags($page);
    echo $utf8_text

?>

Das Problem ist folgendes:

Wenn ich als URL handytarife.de nutze, wird die Variable ausgegeben. Bei einigen Seiten wird aber nichts ausgegeben, beispielsweise bei billig-tarife.de/handytarife/ (immer mit "http://www." davor). Das kommt mir sehr komisch vor und ich weiß nicht woran es liegt. Es liegt an meiner eigenen Funktion, wenn ich beispielsweise das "strip_html_tags()" wegnehme, erfolgt immer eine Ausgabe. Fehlermeldungen gibt es keine. Komisch ist, dass es bei etwa 60 % der Websites klappt.

Kann mir jemand helfen?
 
Kommt bei denen schon aml was aus get_we_page() heraus? Also ist der Fehler vor deiner regex-Geschichte?
 
Ja, das funktioniert bis zur Funktion. Komischerweise klappt keine Funktion (habe mehrere), wenn ich Standardsachen verwende, wie strip_tags() geht das auch. Ich wundere mich nur, dass es bei rund der Hälfte der Seiten klappt.
 
Zurück