Wpis z mikrobloga

#php #pytanie #pytaniedomirkowychekspertow

Yo. Otóż mam zagwozdkę. Chciałem pobierać za pomocą PHP zawartość diva z wykopu, który to odpowiada za dane (w tym wypadku TYLKO moje) i wyświetlać kawałek tej rameczki z danymi na stronie. Niestety... nie wiem jak się do tego zabrać, pół godziny mącę coś, pobrałem jakieś simplehtmldom, nie pomogło. Jedyne co w końcu zrobiłem, to to:

php</pre
$content = filegetcontents('http://wykop.pl/ludzie/Linux_Shines');


$firststep = explode('' , $content);


$second
step = explode("" , $firststep[0]);//[1]);


echo $second
step[0];


?>

Pobiera mi TYLKO ramkę z napisem

> Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies. Możesz określić warunki przechowywania lub dostępu do plików cookies w Twojej przeglądarce. zamknij


Da się jakoś po cywilizowanemu pobrać tą zawartość?
  • 7
  • Odpowiedz
@oggy1989: wiem, co to są wyrażenia regularne, próbowałem ich stosować, ale ten div składa się z dwóch części, co jest cholernie trudnym (jak dla mnie) do zrobienia, aby to w całość jakoś sklecić.
  • Odpowiedz
@Linux_Shines: 1) Masz błąd, w

$second_step
chcesz brać drugi element z

$first_step
czyli tą wykomentowaną jedynkę.

2) Serio poświeć chwilę na naukę regexpa, przyda się w przyszłości, a powinieneś go użyć właśnie dlatego że div składa się z dwóch części :)

3) Jak czujesz bardzo duży wstręt do wyrażeń regularnych to możesz załadować sobie całą stronę do DOMu (np. http://pl.php.net/manual/en/domdocument.loadhtml.php) i wykonać na niej jakiegoś xpatha lub inne cudo żeby odnaleźć
  • Odpowiedz
@Linux_Shines: Pisane na szybko więc pewnie da się jeszcze jakoś poprawić :D

php<br/
$content = file_get_contents('LinuxShines.html');

preg_match('%(?:\s|.*

)+%i',$content,$result);

$data = explode(' ',strip_tags($result[0]));

$data = array_slice($data,1);

foreach($data as &$item) $item = trim($item);

print_r($data);

Poczytaj może w Wykop API jest coś do pobierania danych :D
  • Odpowiedz