Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wczytanie ostataniego postu z bloggera
Forum PHP.pl > Forum > PHP
robert1974
czesc,
Podpowiecie, jak zrobic cos takiego by z podanego bloga na blogger.com wczytywac automatycznie ostatni dodany tam post i wyswietlac go u siebie na stronie?
dzieki wielkie,
Robert
markuz
1. Pobierasz źródło za pomocą curl`a albo file_get_contents
2. Za pomocą np. https://github.com/tburry/pquery w zależności od struktury pobierasz strukturę (html) posta np.
  1. $post = $dom->query('#main #post-wrapper .post:first-child')->html();


Równie dobrze możesz to rozbić na tytuł, date dodania, autora i np. treść posta.
robert1974
1. pobralem package pQuery i skopiowalem na serwer

2. dodalem przykladowy kod do mojego php:

$html = '<div class="container">
<div class="inner verb">Hello</div>
<div class="inner adj">Cruel</div>
<div class="inner obj">World</div>
</div>';

$dom = pQuery::parseStr($html);

$dom->query('.inner')
->tagName('span');

$dom->query('.adj')
->html('Beautiful')
->tagName('i');

echo $dom->html();


3. co dodac do index.php by wiedzial gdzie mam wrzucone te pliki pQuery i by tego uzywal?


sprobowalem po prostu dodac ten pQuery.php jako include w php:

<?php include '../system/pquery-master/pQuery.php'; ?>

ale chyba nie tego droga, bo dostaje:

Parse error: syntax error, unexpected T_STRING, expecting T_CONSTANT_ENCAPSED_STRING or '(' in /system/pquery-master/pQuery.php on line 10



podpowie ktos?
markuz
Jaką masz wersje PHP na serwerze?
robert1974
PHP Version 5.2.17
markuz
Musisz zainstalować nowszą wersję PHP ponieważ ta nie wspiera "przestrzeni nazw" - zainstaluj sobie najlepiej najnowszą (aktualnie 5.6.3)
robert1974
to server w home.pl

default jest tam 5.2.17 i zmiana na 5.4 byla poprzez pliek htaccess (polecenie Use php54)

ale zmiana w htaccess na wyzszy numer juz mi nie dziala. musze spytac home.pl jak to sie robi.



home.pl opdisalo mi wlasnie "W chwili obecnej nie oferujemy interpretera PHP w wersji 5.6.3"

jakis inny pomysl? moze inna bilbilioteka albo moze jednak to jak to ja to chcialem dodac jest bledne?
markuz
Z tego co wiem powinno działać na 5.4 - mam nadzieję, że sprawdzałeś..
robert1974
przepraszam na 5.4 wczesniej nie sprawdzilem. Teraz dopiero, i widze ze jest roznica. Inny blad.

Fatal error: Interface 'pQuery\IQuery' not found in /system/pquery-master/pQuery.php on line 15

na wersji : PHP Version 5.4.30

moze jszcze jakiegos php musze zaincludowac.

teraz mamy tylko tego:
<?php include '../system/pquery-master/pQuery.php'; ?>

zaraz poprobuje.

dobra, chyba troche lepiej dodalem iquery.php i znow kolejny blad:
Fatal error: Class 'pQuery\Html5Parser' not found in /system/pquery-master/pQuery.php on line 159

walcze smile.gif

w dokumentacji pisza tak,tylko kompletnie nie wiem o co chodzi w punkcie 1:

To get started using pQuery do the following.

1. Require the pQuery library into your project using [composer](http://getcomposer.org/doc/01-basic-usage.md#the-require-key).
2. Parse a snippet of html using `pQuery::parseStr()` or `pQuery::parseFile()` to return a document object model (DOM).
3. Run jQuery like functions on the DOM.

markuz
W katalogu głównym tej biblioteki masz taki plik composer.json - po wejściu w niego masz taki zapis:
Kod
"require-dev": {
       "htmlawed/htmlawed": "dev-master"
   }

Co oznacza, że ta biblioteka wymaga innej biblioteki a dokładnie htmlawed/htmlawed w wersji "dev-master".
Możesz ją zainstalować w łatwy sposób komendą composer install jednak wcześniej musisz zainstalować composer`a.
Jak wiążesz swoją przyszłość z PHP`em to warto dowiedzieć się co to jest composer, jak działa, dlaczego warto go używać itd. smile.gif
robert1974
... ze tak spytam, czy nie ma innego sposobu z wyswietlnie tego postu z bloggera biggrin.gif biggrin.gif biggrin.gif

dzieki za pomoc, ogarne w wolnej chwili tego composera
markuz
Oczywiście, że jest - jak to w programowaniu na dany problem jest często nieograniczona ilość rozwiązań. Rozwiązanie które Ci podałem wydawało mi się najlepsze (ponieważ biblioteka jest łatwa w użyciu).

Tutaj masz podobną bibliotekę - pobierz paczkę phpQuery-0.9.5.386-onefile.zip i dołącz plik do swojego skryptu.

Równie dobrze możesz napisać taki skrypt w czystym PHP`ie ale w tym już Ci nie pomogę ponieważ nie potrafię jeszcze sprawnie pisać tzw. "wyrażeń regularnych".
robert1974
instalacja 2 min trwala, wklejenie ichniego przykladu z demo.php i wyglada ze dziala, ... teraz tylko musze ogarna jak to dziala, ale to juz chyba luzik, bede parsowal HTMLe niebawem smile.gif



ok... juz troche zmeczylem i nawet costam dziala, dla zainteresowanych moje obecne dzialajace proby:

$url=" jakis url strony";
$result = get_web_page( $url ); //funkcja do pobrania z http://stackoverflow.com/questions/1495386...tent-using-curl
$page = $result['content'];
phpQuery::newDocument($page);

//$first_post_element = pq('div.post-outer'); is OK
//$first_post_element = pq('div.post'); is OK
//$first_post_element = pq('div.post-header'); //ok
//$first_post_element = pq('div.post-body');// ok
$first_post_element = pq('h3.post-title'); //dziala ok

$first_post = $first_post_element->html();
echo "first post:" . $first_post . '<br/>';

jutro powienem ogarnac jak dostac sie do odpowiedniego elementu/elementow HTMLa

czad!

dzieki raz jeszcze!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.