Как использовать htmlspecialchars в preg_match - PullRequest
0 голосов
/ 23 апреля 2011

Это мой код, он будет отображаться "Не работает"

    $f = file_get_contents("http://www.google.com");
    $text = htmlspecialchars( $f );

        $matches = array();
        preg_match('@<a.*?</a>@s', $text, $matches);
        if ($matches) {
            $text2 = $matches[0];
            echo $text2;
        }
        else {
            echo "Not working";
        }

Если я сделал переменную:

$text = '<a href="http://www.google.com">Google</a> is your best friend!';

Это будет работать как-то, но не будет, когда я возьму его из:

$text = htmlspecialchars( $f );

Кто-нибудь знает почему?

Ответы [ 2 ]

2 голосов
/ 23 апреля 2011

Это потому, что htmlspecialchars переводит все специальные символы <&>"' и т. Д. В html-объекты (например, & становится &amp;) Таким образом, ваш матч не удался.

2 голосов
/ 23 апреля 2011

htmlspecialchars будет конвертировать из

<

до

&lt;

и т.д.. См. Руководство.

...