Преобразование вывода HTML в обычный текст с помощью php

Я пытаюсь преобразовать образец вывода HTML в обычный текст, но не знаю, как это сделать. Я использую file_get_contents, но страница, которую я пытаюсь преобразовать, возвращает почти то же самое.

$raw = "http://localhost/guestbook/profiles.php";
$file_converted = file_get_contents($raw);
echo $file_converted;

профили.php

<html>
    <head>
        <title>Profiles - GuestBook</title>
        <link rel="stylesheet" type="text/css" href="css/style.css">
    </head>
<body>
    <!-- Some Divs -->
    <div id="profile-wrapper">
        <h2>Profile</h2>
        <table>
            <tr>
                <td>Name:</td><td> John Dela Cruz</td>
            </tr>
            <tr>
                <td>Age:</td><td>15</td>
            </tr>
            <tr>
                <td>Location:</td><td> SomewhereIn, Asia</td>
            </tr>
        </table>
    </div>
</body>
</html>

По сути, я пытаюсь повторить что-то вроде этого (обычный текст, без стилей)

Profile
Name: John Dela Cruz
Age: 15
Location: SomewhereIn, Asia

но я не знаю как. :-( . Пожалуйста, помогите мне, ребята, заранее спасибо.

РЕДАКТИРОВАТЬ: Поскольку я только после содержимого страницы, независимо от того, оформлена она или просто текст, есть ли способ выбрать только (см. код ниже) с помощью file_get_contents()?

 <h2>Profile</h2>
        <table>
            <tr>
                <td>Name:</td><td> John Dela Cruz</td>
            </tr>
            <tr>
                <td>Age:</td><td>15</td>
            </tr>
            <tr>
                <td>Location:</td><td> SomewhereIn, Asia</td>
            </tr>
        </table>

person Dan    schedule 06.12.2011    source источник
comment
спасибо за быстрый ответ Сергею Евсееву, josnidhin и Джонатану Ричу. Очень ценится. :-)   -  person Dan    schedule 06.12.2011
comment
Обратите внимание, что люди, говорящие об использовании strip_tags, не совсем понимают это или проявляют небрежность. Это оставит ваш заголовок нетронутым, а также любые встроенные таблицы стилей или JavaScript. У вас нет ни одного из последних, но у вас есть титул. . .   -  person Levi Morrison    schedule 06.12.2011
comment
я использую strip_tags, хотя он снимает html-теги, но возвращает нежелательный результат, например. { шрифт: жирный 11px Lucida Grande, Lucida Sans Unicode, Trebuchet MS, Helvetica, Arial, без засечек; цвет: #045877; отступ: 15px 0 0 12px; текстовое оформление: нет; дисплей: блок; поле: 0 авто; }   -  person Dan    schedule 06.12.2011
comment
возможно, использование strip_tags наверняка ответит на заголовок моего вопроса, поскольку то, что я видел, это обычный текст, но использование strip_tags не помогает мне вернуть желаемый результат.   -  person Dan    schedule 06.12.2011
comment
используйте strip_tags или, если вам нужен обычный текст с тегами html, тогда: browse-tutorials.com/snippet/   -  person ram4nd    schedule 25.11.2013


Ответы (5)


Используйте php strip_tags

Если strip_tags не работает, возможно, вы можете использовать регулярное выражение для извлечения нужной информации.

Попробуйте использовать PHP preg_match с /(<td>.*?<\/td>)/ в качестве шаблона

person Josnidhin    schedule 06.12.2011

Взгляните на simplexml_load_file():

http://www.php.net/manual/en/function.simplexml-load-file.php

Это позволит вам загружать данные HTML в объект (SimpleXMLElement) и перемещаться по этому объекту как по дереву.

person Jonathan Rich    schedule 06.12.2011
comment
Если вы добавите ему пример, это будет лучший ответ. Сейчас это слишком неоднозначно для новичка. - person Levi Morrison; 06.12.2011
comment
извините, не знаю, как использовать файл загрузки xml - person Dan; 06.12.2011
comment
us.php.net/manual/en/simplexml.examples-basic. php Основное использование очень простое. У вас есть опыт работы с объектными интерфейсами PHP? - person Jonathan Rich; 06.12.2011
comment
@Jonathan Rich: нет, я просто новичок в Php, извините за это, сэр - person Dan; 06.12.2011
comment
Это нормально. Взгляните на пример, который я вставил, и посмотрите, что вы можете придумать. - person Jonathan Rich; 06.12.2011

попробуйте использовать функцию PHP strip_tags

person Sergej Jevsejev    schedule 06.12.2011
comment
я использую strip_tags, хотя он снимает html-теги, но возвращает нежелательный результат, например. { шрифт: жирный 11px Lucida Grande, Lucida Sans Unicode, Trebuchet MS, Helvetica, Arial, без засечек; цвет: #045877; отступ: 15px 0 0 12px; текстовое оформление: нет; дисплей: блок; поле: 0 авто; } - person Dan; 06.12.2011

Попробуй это,

<?php
$data = file_get_contents("your_file");
preg_match_all('|<div[^>]*?>(.*?)</div>|si',$data, $result);
print_r($result[0][0]);
?>

Я попробовал это, и, похоже, это работает для меня, надеюсь, для вас тоже

person Khairu Aqsara    schedule 06.12.2011
comment
Здравствуйте, сэр, что поставить на переменную данных? - person Dan; 07.12.2011
comment
просто добавьте http://localhost/guestbook/profiles.php к вашей переменной, а затем для print_r() вы можете использовать foreach() или что-то в этом роде - person Khairu Aqsara; 07.12.2011
comment
Не выполняйте разбор HTML с помощью регулярного выражения. - person Adrian Heine; 31.07.2013

Для этого вы можете использовать функцию php strip_tags. Просмотрите комментарии на справочной странице php функции strip_tags, чтобы увидеть, как вы можете использовать это с пользой.

person Iljaas    schedule 06.12.2011