Простой DOM Parser PHP ожидает только один результат от CSS-селектора - PullRequest
1 голос
/ 20 октября 2011

Эй, у меня проблема с парсером Simple DOM, который сводит меня с ума.

Это работает нормально:

foreach($html->find('input[name=sex]') as $e)
echo $e->value;

Даже если результат только 1.

Однако это не работает:

echo $html->find('input[name=sex]')->value;

Я не хочу использовать foreach, потому что ожидаю только 1 результата. Кто-нибудь может мне помочь со вторым блоком кода?

Приветствия

Ответы [ 3 ]

4 голосов
/ 20 октября 2011

Согласно документации , второй параметр - это индекс, который вы хотите найти.Установите значение 0, чтобы вернуть первый ( 0th ) элемент, а не массив объектов:

Поиск элементов с помощью селектора CSS.Возвращает N-й элемент объекта, если установлен индекс, в противном случае возвращает массив объекта.

$html->find('input[name=sex]', 0)->value;
0 голосов
/ 20 октября 2011

Если вы можете использовать for-each для чего-либо, это массив / коллекция, даже если есть один элемент.Вы просите отобразить весь массив, для которого может потребоваться print_r.Как предложил другой постер, используйте нижний индекс.

0 голосов
/ 20 октября 2011
$html->find('input[name=sex]')[0]->value;

Кажется, find возвращает массив, поэтому использование индекса поможет вам.

Используйте приведенный выше код.

...