CURL + PHP для получения имени класса, возможно? - PullRequest
1 голос
/ 07 марта 2012

Можно ли получить определенное имя класса через cURL?

Например, я просто хочу получить 123 в этом <div class="123 photo"></div>.

Возможно ли это?

Спасибо за ваши ответы!

Edit:

Если это то, что видно на сайте

<div class="444 photo">...</div>
<div class="123 photo">...</div>
<div class="141 photo">...</div>

etc...

Я пытаюсь получить все числа этого класса и добавляю некоторый массив.

1 Ответ

4 голосов
/ 07 марта 2012

cURL - это только половина решения. Его работа заключается в простом извлечении контента. Если у вас есть этот контент, вы можете выполнять манипуляции со строками или структурами. Есть некоторые текстовые функции, которые вы могли бы использовать, но кажется, что вы ищете что-то конкретное среди этого контента, поэтому вам может понадобиться что-то более надежное.

Поэтому, для этого HTML-контента, я бы предложил исследовать DOMDocument, так как он структурирует ваш контент в XML-подобную иерархию, но в большей степени прощает более слабый характер разметки HTML.

$ch = curl_init();
// [Snip cURL setup functions]
$content = curl_exec($ch);

$dom = new DOMDocument();
@$dom->loadHTML($content); // We use @ here to suppress a bunch of parsing errors that we shouldn't need to care about too much.

$divs = $dom->getElementsByTagName('div');
foreach ($divs as $div) {
    if (strpos($div->getAttribute('class'), 'photo') !== false) {
      // Now we know that our current $div is a photo
      $targetValue = explode(' ', $dom->getAttribute('class'));

      // $targetValue will now be an array with each class definition.
      // What is done with this information was not part of the question,
      //   so the rest is an exercise to the poster.
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...