php возвращает элементы из содержимого файла - PullRequest
0 голосов
/ 28 апреля 2010

Довольно просто, я уверен, но ..

У меня есть файл, в котором гарантированно есть только

текст

и

текст

.

Как мне вернуть эти элементы в виде отдельных переменных?

Ответы [ 3 ]

2 голосов
/ 28 апреля 2010

Если ваш файл в формате HTML, общим решением будет:

  • Загрузите его в DOMDocument, с
  • Используйте методы DOM для доступа к вашим узлам
  • И тогда, когда у вас есть ваш узел, работа сделана ;-)
    • Нет: если ваши HTML-элементы содержат вложенные элементы и вы хотите, чтобы весь контент, включая вложенные теги, был представлен в виде строки, например, это примечание пользователя
1 голос
/ 28 апреля 2010

Ваш файл - просто текст, поэтому вам придется его анализировать. Обычно HTML не совсем подходит для анализа при обычных операциях, но если вы знаете точное содержимое, у вас не должно возникнуть проблем.

В зависимости от того, какой у вас разделитель между двумя блоками тегов (давайте представим, что это \n, вы можете сделать что-то вроде этого:

$contents = file_get_contents("yourfile.html");
list($h1,$p) = explode("\n",$contents);

Это даст вам два текстовых блока в $h1 и $p. Вы можете разобрать все остальное, если вам нужно больше работать.

0 голосов
/ 28 апреля 2010

Вы можете использовать что-то вроде этого:

    function strBetween($au, $au2, $text) {//gets substring beetween $au and $au2 in $text
        $pau = strpos($text, $au);
        if($au2 !== '') {
            $pau2 = strpos($text, $au2,$pau);
            if($pau !== false && $pau2 !== false)
                return substr($text, $pau+strlen($au), $pau2-$pau-strlen($au));
            else
                return '';
        } else {
            return substr($text, $pau+strlen($au));
        }

    }
$contents = file_get_contents("yourfile.html");
$h1 = strBetween('<h1>', '</h1>', $contents);
$p = strBetween('<p>', '</p>', $contents);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...