Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]pobranie za pomoca 'getElementsByTagName'
Forum PHP.pl > Forum > Przedszkole
shtoc
Czy za pomoca takiego wyrazenia :

  1. <?php
  2. $dane = $DOM->getElementsByTagName('user_vid_list');
  3. ?>


dam rade wyciagnac ze strony rzeczy kryjace sie wewnatrz user_vid_list??

ewentualnie jak to wywolac zeby dalo efekt
bo echo $dane; nie dziala
nospor
1) Czy $DOM jest prawidlowym obiektem DOM xml, ktorego przeszukujesz?
2) "echo $dane; nie dziala " to ci co najwyzej wyswietli slowo OBJECT.
getElementsByTagName zwraca obiekt DOMNodeList i musisz po nim przeiterowac by dobrac sie do jego elementow
shtoc
  1. <?php
  2. foreach ($DOM->getElementsByTagName('meta') as $meta)
  3.        {
  4.            if(strtolower($meta->getAttribute('name'))  == 'description')
  5.            {
  6.                $description = $meta->getAttribute('content');
  7.              
  8.                echo "[ DESC ] $description\n";
  9.                
  10.            }
  11.        }
  12. ?>

Tu mam takie fragmencik kodu ($DOM = new DOMDocument()winksmiley.jpg i on mi wyciaga ze strony z meta tagów informacje na temat descryption.
A ja potrzebuje wyciagnac informacje z body strony www.
Jak przejsc do :
...
<div id="content">
<div id="user_files">
<div id="user_video" class="zakladka type1">
<div id="user_vid_list">
<ul class="row spis type1">
<li id="user_vid_id_wgzAZMnaN9v">
<div class="file_mini_user">
<div class="thumbnail"> <div class="title"></div> <div class="more"></div> <div class="author"></div> <div class="tags"></div>
zeby wyciagnac informacje na temat tych rzeczy?
nospor
przeciez user_vid_list to ID a nie nazwa znacznika. No patrz troche co piszesz i czego uzywasz

Musisz pobrac wszystkie divy i sprawdzic, ktory ma Twoje ID.
shtoc
Cytat(nospor @ 1.12.2008, 14:58:54 ) *
Musisz pobrac wszystkie divy


tzn? za pomoca czego to zrobic??
nospor
hmmm....no nie wiem......
Zastanawiasz sie choc troche nad funkcjami, ktorych uzywasz?
getElementsByTagName('div')
shtoc
Cos takiego??
  1. <?php
  2. foreach ($DOM->getElementsByTagName('div') as $div)
  3.    {
  4.        if(strtolower($div->getAttribute('id'))  == 'wrzuta')
  5.            {
  6.                $wrzuta = $div->getAttribute('wrzuta');
  7.  
  8.                echo $wrzuta;
  9.  
  10.            }
  11.    }
  12. ?>

ale to chyba nie dokonca tak?? :/

z tym ze atrybut to musi byc juz chyba wyrazenie class??
nospor
Cytat
ale to chyba nie dokonca tak?? :/

A no nie tak, gdyz na poczatku mowiles cos o user_vid_list a teraz dopierasz sie do wrzuta winksmiley.jpg

Kod ogolnie wyglada ok. Wyswietl sobie bez warunku pobrane divy i zobaczysz co pobrales. Czy takie proste sprawdzenie co sie ma to tez trzeba tlumaczyc?
shtoc
zaraz bede dalej kombinowal bo mnie nie bylo!!

ale ogolnie o to chodzi zeby dobrac sie do poszczegolnych filmikow na wrzuta.pl

i tam w kodzie strony tworzy sie takie spore drzewo od poczatku <div id="main"> do <div class="file_mini_user"> w ktorym zawarte sa <div class="title"> itp. i chodzi o wyciagniecie wlasnie informacji z tych div class.

przy probie wywolania pobranego diva

$a=$DOM->getElementsByTagName('div');

echo $a;

dostaje takiego błenda :

Catchable fatal error
: Object of class DOMNodeList could not be converted to string in C:\Program Files\WebServ\httpd\nauka.php on line 16

to moze jeszcze raz bardziej sensownie.
ponizej zaklaczylem screen z kodem strony i chialbym wyciagnac z niej informacje z div class= file_mini_user ( title more author tags)




i mam cos takiego napisane ale to nie dziala.

CODE
$adres = 'http://www.wrzuta.pl/filmy/najnowsze/';
$url = curl_init($adres);
curl_setopt($url, CURLOPT_USERAGENT, 'holmes/3.10.1 (OnetSzukaj/5.0; +http://szukaj.onet.pl)');
curl_setopt($url, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($url, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($url, CURLOPT_HEADER, 0);
$strona=curl_exec($url);
#curl_close($url);

$DOM = new DOMDocument();
@$DOM->LoadHTML(iconv("ISO-8859-2","UTF-8",$strona));

foreach ($DOM->getElementsByTagName('div') as $div)
{
if(strtolower($div->getAttribute('id')) == 'file_mini_user')
{
$user = $div->getAttribute('title');

echo $user;

}
}
?>



ktos moze mi powiedziec co jest nie tak questionmark.gif
czy chociaz trop jest dobry??
nospor
przeciez file_mini_user to class a nie id .... normalnie brak slow.... mysl troche chlopie bo normalnie marnujesz swoj i nasz czas...

  1. <?php
  2. foreach ($DOM->getElementsByTagName('div') as $div)
  3. {
  4.    if(strtolower($div->getAttribute('class')) == 'file_mini_user')
  5.    {
  6.  
  7.        foreach ($div->getElementsByTagName('div') as $div2){
  8.            if (strtolower($div2->getAttribute('class')) == 'title')
  9.                echo 'Twoj div to $div2 i rob z nim co chcesz';
  10.        }
  11.    }
  12. }
  13. ?>
shtoc
no spoko juz kumam jest tylko jedna sprawa nie mozna wypisac z objektu dom za pomoca echo.
ktos mi powiedzial ze mozna to zrobic za pomoca nodevalue lub nodetext. ale w manualu nie ma takich fujnkcji.
nospor
  1. <?php
  2. echo $div2->nodeValue;
  3. ?>
mike
Cytat(shtoc @ 2.12.2008, 10:02:18 ) *
ale w manualu nie ma takich fujnkcji.
Bo to nie funkcja tongue.gif
Klasa DOMElement dziedziczy po DOMNode, która posiada publiczne właściwości typu nodeName, nodeValue, nodeType, ...
shtoc
ok fajnie smiga z tym ze wyswietlaja mi sie informacje na temat wszystkich 16 filmikow.
i chcialbym to zapakowac w tablice ale nie moge
  1. <?php
  2. foreach ($tablica as $div5)
  3.   {
  4.   echo $div5->nodeValues;
  5.   }
  6. ?>

co jest nie tak??
nospor
przeciez ty tu ni do tablicy nie pakujesz
  1. <?php
  2. $tablica= array();
  3. foreach ($DOM->getElementsByTagName('div') as $div)
  4. {
  5.   if(strtolower($div->getAttribute('class')) == 'file_mini_user')
  6.   {
  7.  
  8.       foreach ($div->getElementsByTagName('div') as $div2){
  9.           if (strtolower($div2->getAttribute('class')) == 'title')
  10.               $tablica[] = $div2->nodeValue;
  11.       }
  12.   }
  13. }
  14. print_r($tablica);
  15. ?>
shtoc
to w sumie mam taki kod :

  1. <?php
  2. $adres = 'http://www.wrzuta.pl/filmy/najnowsze/';
  3. $url = curl_init($adres);
  4. curl_setopt($url, CURLOPT_USERAGENT, 'holmes/3.10.1 (OnetSzukaj/5.0; +http://szukaj.onet.pl)');
  5. curl_setopt($url, CURLOPT_RETURNTRANSFER, 1);
  6. curl_setopt($url, CURLOPT_CONNECTTIMEOUT, 5);
  7. curl_setopt($url, CURLOPT_HEADER, 0);
  8. $strona=curl_exec($url);
  9. #curl_close($url);
  10.  
  11. $DOM = new DOMDocument();
  12. @$DOM->LoadHTML(iconv("ISO-8859-2","UTF-8",$strona));
  13.  
  14. $tablica= array();
  15.  
  16. foreach ($DOM->getElementsByTagName('div') as $div)
  17. {
  18.   if(strtolower($div->getAttribute('class')) == 'file_mini_user')
  19.   {
  20.       foreach ($div->getElementsByTagName('div') as $div2)
  21.       {
  22.           if (strtolower($div2->getAttribute('class')) == 'title')
  23.  
  24.             foreach ($div->getElementsByTagName('div') as $div3 )
  25.             {
  26.                 if (strtolower($div3->getAttribute('class')) == 'author')
  27.                      
  28.                       foreach ($div->getElementsByTagName('div') as $div4 )
  29.                       {
  30.                        if (strtolower($div4->getAttribute('class')) == 'more')
  31.                        
  32.                                     foreach ($div->getElementsByTagName('div') as $div5 )
  33.                                     {
  34.                                       if (strtolower($div5->getAttribute('class')) == 'tags')
  35.  
  36.                                      $tablica[] = $div5->nodeValue;
  37.                                        
  38.                                        
  39.                       }
  40.             }
  41.       }
  42. }
  43. }
  44.  
  45. }
  46. #print_r($tablica);
  47. for($i=0;$i<16;$i++)
  48. {
  49. echo 'TAB ['.$i.']'.$tablica[$i].'
  50. ';
  51. }
  52. ?>

ktory mi wyswietla w zaleznosci od podania diva informacje wszystkie o plikach albo odpowiednie.

a czy jest mozliwosc po urzyciu diva ktory wyswietla tytulrozmiarczasautoraslowakluczowe jako jeden rekord wyciagnac z niego poszczegolne informacje??
czy trzeba to robic tak jak mowilem za pomoca zmiany diva??
mike
Proszę poprawić wszystkie swoje posty i umieścić kody źródłowe w odpowiednich znacznikach bbCode!
nospor
Zacznij uzywac wkoncu BBCODE!!

  1. <?php
  2. $tablica = array();
  3. $i = 0;
  4. foreach ($DOM->getElementsByTagName('div') as $div)
  5. {
  6.    if(strtolower($div->getAttribute('class')) == 'file_mini_user')
  7.    {
  8.  
  9.        $tablica[$i] = array();
  10.        foreach ($div->getElementsByTagName('div') as $div2){
  11.            $class = strtolower($div2->getAttribute('class'));
  12.            if (!empty($class))
  13.                $tablica[$i][$class] = $div2->nodeValue;
  14.        }
  15.        $i++;
  16.    }
  17. }
  18. print_r($tablica);
  19. ?>

Włóż to troche myslenia smile.gif
shtoc
z tym ze nie dokonca wiem jak tego urzyc?? ;p

wstaw : CODEBOX?? to nie dokonca wyglada tak jak Twoje.

jest jeszcze taki przycisk PHP ale nie dziala albo nie wiem jak go do konca uzyc??
sry za to!!
mike
Cytat(shtoc @ 2.12.2008, 12:58:42 ) *
z tym ze nie dokonca wiem jak tego urzyc?? ;p
To jak się dowiesz to otworzę wątek.

Otwieram.

P.S.
Jakby co to w tryb edycji wchodzi się za pomocą
shtoc
dobra wszystko fajnie jest!!

zabieram sie za jakis tutorial o PDO co by wyslac teraz to do bazy danych smile.gif

No wiec exclamation.gif
probuje sie łączyć z baza za pomoca

  1. <?php
  2. try
  3.   {
  4.    $pdo = new PDO('mysql:host=localhost;dbname=nazwa bazy', 'admin', 'haslo');
  5.      echo 'Połączenie nawiązane!';
  6.         }
  7.        catch(PDOException $e)
  8.         {
  9.      echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
  10. ?>


i dostaje blad :
Połšczenie nie mogło zostać utworzone: could not find driver
dlaczego??
nospor
a masz mysql zainstalowanego? i liby mysql dla php?
mike
Cytat(shtoc @ 2.12.2008, 15:31:47 ) *
i dostaje blad :
Połšczenie nie mogło zostać utworzone: could not find driver
dlaczego??
A szukałeś odpowiedzi? Nie. A masz obowiązek zanim zapytasz!
shtoc
posiadam
- webserver 2.0
- Apache 2.2.6
- PHP 5.2.5
- MySQL 5.0.45


odp zaraz poszukam!!

Pogrzebalem i znalazlem taka odp na posta podobnego do mojego :

"Could not find driver" - nie można znależć sterownika. Nie chodzi o to, że on nie działa tylko nie masz go zainstalowanego.
A może łączysz się przez pdo?

Skorzystaj z PERL/PECL.



CODE
perl install pdo
perl install pdo_mysql


nie jest tam napiane ze to na 100% to!!
ale jesli tak to jak tego urzyc?questionmark.gif
albo czy moze odznaczyc jakies fragmenty w php.ini?questionmark.gif

czy chodzilo o odblokowanie tego??

extension=php_pdf.dll
extension=php_pdo.dll
extension=php_pdo_firebird.dll
extension=php_pdo_ibm.dll
extension=php_pdo_informix.dll
extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll
extension=php_pdo_oci.dll
extension=php_pdo_oci8.dll
extension=php_pdo_odbc.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
extension=php_pdo_sqlite_external.dll

nie dlao to rezultatow sad.gif
mike
Po każdej zmianie konfiguracji PHP musisz zrestartować serwer, na którym to PHP działa.
Zrobiłeś to?
shtoc
:/ nie ale juz robie!!

a czyli dobrze tylko nie bylo restarta exclamation.gif tera dziala!! smile.gif

z tym ze mi jakies bledy z dll wyskakuja przy uruchamianiu serwera :/
mike
Hmm, "jakieś" błedy mówisz...
Myślę że rowiązaniem będzie ... "coś".
shtoc
no wiec tak serwer sie uruchamia ale podczas uruchamiania wydkakuje blad wynikajacy z braku plikow dll:
- gds32.dll
- DB2CLI.dll
- ICLIT09B.dll
- ntwdblib.dll
- OCI.dll
- sqlite.dll

powtarza sie to 2 krotnie. i jest info jeszcze ze ponowna instalacja moze naprawic ten blad!
poszukac plikow na google i wrzucic do programu??
mike
A korzystasz z tych rozszerzeń? One często wymagają dodatkowych bibliotek ale wątpię, że to Cię powinno dotyczyć bo Ty nie potrzebujesz tych bibliotek.
Ciebie dotyczy tylko extension=php_pdo_mysql.dll.
shtoc
faktycznie masz racje wylaczenie i pozostawienie tylko tej jednej naprawilo wszystko i polaczenie dalej dziala smile.gif

dziekuje

Witam ponownie.
Dodaje do skryptu taki kod laczacy sie z baza i zapisujacy w niej rekordy.
Tylko dlaczego on zapisuje mi $tablica[1] jako ciag liter a nie zapisuje tego co miesci sie pod zmienna?? (przed zmienna tablica jest \ ' ) jak to rozdziele to nie widac \ a jak dam razem to mam &#)
  1. <?php
  2. try
  3.        {
  4.                $pdo = new PDO('mysql:host=localhost;dbname=wrzuta', 'admin', 'haslo);
  5.                $pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  6.  
  7.                $ilosc = $pdo -> exec('INSERT INTO `filmy` (`info`)   VALUES(
  8.                          ' $tablica[1]')');
  9.  
  10.                if($ilosc > 0)
  11.                {
  12.                        echo 'Dodano: '.$ilosc.' rekordow';
  13.                }
  14.                else
  15.                {
  16.                        echo 'Wystąpił błąd podczas dodawania rekordów!';
  17.                }
  18.        }
  19.        catch(PDOException $e)
  20.        {
  21.                echo 'Wystąpił błąd biblioteki PDO: ' . $e->getMessage();
  22.        }
  23. ?>
mike
A teraz czytamy podstawy: stringi.
Po tej lekturze znamy różnicę pomiędzy ' a " tongue.gif
shtoc
  1. <?php
  2. $ilosc = $pdo -> exec('INSERT INTO `filmy` (`info`)   VALUES  \"$tablica[1]\" ');
  3. ?>


moim zdaniem powinno byc cos takiego. ujecie zmiennej w " " ale nie dziala
nospor
  1. <?php
  2. $ilosc = $pdo -> exec("INSERT INTO `filmy` (`info`)   VALUES  ('$tablica[1]') ");
  3. ?>

Ale jak juz korzystasz z PDO, to moze zainteresuj sie bindowaniem
mike
Nie. $tablica[1] nadal tak naprawdę jest w apostrofach.
Masz do wyboru:
  1. <?php
  2.  
  3. $ilosc = $pdo -> exec('INSERT INTO `filmy` (`info`)   VALUES  ' . $tablica[1]);
  4. $ilosc = $pdo -> exec("INSERT INTO `filmy` (`info`)   VALUES  {$tablica[1]}");
  5.  
  6. ?>
nospor
@mike ale generujesz nadal niepoprawne skladniowo zapytania:
http://dev.mysql.com/doc/refman/5.0/en/insert.html

niechwaląc się, jam zapodał w poprzednim poscie poprawne skladniowo zapytanie winksmiley.jpg
mike
Cytat(nospor @ 3.12.2008, 11:25:19 ) *
niechwaląc się, jam zapodał w poprzednim poscie poprawne skladniowo zapytanie winksmiley.jpg
Ale marne z punktu widzenia estetyki kodu tongue.gif
  1. <?
  2.  
  3. $ilosc = $pdo -> exec("INSERT INTO `filmy` (`info`) VALUES ('" . $tablica[1] . "')");
  4. $ilosc = $pdo -> exec("INSERT INTO `filmy` (`info`) VALUES ('{$tablica[1]}')");
  5.  
  6. ?>
nospor
tak samo marne jak twoj kod:
$ilosc = $pdo -> exec("INSERT INTO `filmy` (`info`) VALUES ('{$tablica[1]}')");
Moj bez {} jest tak samo poprawny jak twoj tongue.gif. Ale to nie miejsce na takie klotnie.
Podsumowując: niechwalac sie, jam pierwszy podal dobrze winksmiley.jpg

@shtoc NIe dawaj kazdemu postowi pomogl
shtoc
Mam wiec opisy!! Przydaly by sie filmiki na serwerze.

znalazlem na formu kod do sciagania zdjec

  1. <?PHP
  2. $fContents = file_get_contents("http://c.wrzuta.pl/wi4667/c405e0de002c64f2492da921/e4gy7nbd?type=i&key=jjsRXHUPyb&ft=f");
  3. $plik=fopen("C:Program FilesWebServhttpdbbb.jpg","w");
  4. fwrite($plik,$fContents);
  5. ?>


i kod zapisuje fotke z podanego linku.

sprobowalem z filmem ale jest poroblem ze znlezieniem linku zeby pobrac taki film ale pogrzebalem w kodzie strony i znalazlem ze w linku

  1. http://bartusors.wrzuta.pl/wrzuta.swf?file_key=A4Zymk7aeO&file=http://bartusors.wrzuta.pl/vid/file/A4Zymk7aeO/salto_do_basenu&stream=1&tt=Salto%20do%20basenu%20&img=http://c8.wrzuta.pl/wm19809/7d047eaa0004d66d493665a2/Salto%20do%20basenu%20


mozna wyciagnac fragment zaczynajacy sie od file= czyli :

  1. http://bartusors.wrzuta.pl/vid/file/A4Zymk7aeO/salto_do_basenu&stream=1&tt=Salto%20do%20basenu%20&img=http://c8.wrzuta.pl/wm19809/7d047eaa0004d66d493665a2/Salto%20do%20basenu%20


i wrzucajac go do kodu zaczyna nam go sciagac!!

ale napotkalem na 2 bledy tzn.
1. Fatal error: Maximum execution time of 30 seconds exceeded in C:\Program Files\WebServ\httpd\xxxx.php on line 2
2. Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 8126464 bytes) in C:\Program Files\WebServ\httpd\xxxx.php on line 2

jak pierwszy rozumiem ze jest za krotki czas to w 2 cos jest nie tak z pamiecia??
jak mozna sie tego pozbyc??
i jak wyciagnac dany fragment linku z calego linku??
skowron-line
  1. <?php
  2. ini_set('memory_limit', '400M');
  3. ?>
shtoc
a jeszcze czegos zapomnialem exclamation.gif

jak zapisuje pliki to z jakim rozszerzeniem?? bo dalem dla przykladu aaa.avi to nie moge tego otworzyc!!

  1. <?PHP
  2. ini_set('memory_limit', '400M');
  3. $fContents = file_get_contents("http://max1906.wrzuta.pl/vid/file/juDDuDplxb/mov00001&stream=1&tt=MOV00001&img=http://c6.wrzuta.pl/wm6859/52fbe8ca0004c53c49366b9e/MOV00001");
  4. $plik=fopen("C:Program FilesWebServhttpdbbb.avi","w");
  5. fwrite($plik,$fContents);
  6. ?>


dzial sciage teraz cale filmiki! ale dalej nie wiem jakie rozszerzenie??

ok mam rozszerzenie .flv

a mam jeszcze takie pytanie
czy jest jakies polecenie ktore zamieni fragment ciagu na inny podany przezemnie??

bo jest strstr ale to wyszukuje dany fragment
mike
Cytat(shtoc @ 3.12.2008, 15:49:53 ) *
czy jest jakies polecenie ktore zamieni fragment ciagu na inny podany przezemnie??
str_replace() + ostrzeżenie
shtoc
wczoraj pisalem z kolega skrypt i u niego smiga a ja dostaje u siebie bład :

Fatal error: Call to a member function fetch() on a non-object in C:\Program Files\WebServ\httpd\pobieranie3.php on line 8

questionmark.gif
mike
A może podasz kod jaki napisaliście? Skąd mamy wiedzieć co za bazdury masz napisanie?
shtoc
ja ma takie pytanie jak za pomoca DOM wyciagnac link do strony z kodu :

  1. <div class="row link"><h4><label for="link_do_pliku">Link do pliku:</label></h4><input class="text" type="text" value="http://www.wrzuta.pl/film/9d0sF1wDwq/" readonly="readonly" onclick="select(this);" id="link_do_pliku" />


bo nie wiem jak sie tam dostac??
podobno jak jest to bardziej skomplikowane??
skowron-line
Kod
var link = document.getElementsByClassName( 'text' );
alert( link[0].value ); // jezeli jest to pierwszy element bo link jest tablica wszystkich elementow ktorry ma klase text


* sorki myslalem ze JS
shtoc
a moge dostac poprawny zapis tego??

CODE
var link = document.getElementsByClassName( 'text' );
alert( link[0].value ); // jezeli jest to pierwszy element bo link jest tablica wszystkich elementow ktorry ma klase text


bo ja swoje wyciaganie innych elementow robie tak
  1. <?php
  2. foreach ($DOM->getElementsByTagName('meta') as $meta)
  3. {
  4.    $tag = $meta->getAttribute('name');
  5.    if($tag == 'keywords')
  6.    {
  7.        $tagi = $meta->getAttribute('content');
  8.    }
  9. }
  10. ?>


a po wklejeniu tamtego to mam jedno wielkie podkresnlenie na czerowo smile.gif

jeszcze jedno pytanie!!

  1. <?php
  2.  
  3. $pdo = new PDO('mysql:host=localhost;dbname=wrzuta', 'admin', 'xxx'); #połączenie z baza danych
  4. $pdo -> query ('SET NAMES utf8');
  5. #$sql = "select * from videos where title is null limit 1"; # pobranie 1 filmiku z bazy
  6. #$statement = $pdo->query($sql);
  7. #$pdo -> query ('SET NAMES utf8');
  8. #$row = $statement->fetch(PDO::FETCH_ASSOC);
  9. #unset($statement);
  10.  
  11. $adres ='http://www.wrzuta.pl/film/pXfo5OvPjs/';
  12.  
  13. $url = curl_init($adres);
  14. curl_setopt($url, CURLOPT_USERAGENT, 'holmes/3.10.1 (OnetSzukaj/5.0; +http://szukaj.onet.pl)');
  15. curl_setopt($url, CURLOPT_RETURNTRANSFER, 1);
  16. curl_setopt($url, CURLOPT_CONNECTTIMEOUT, 5);
  17. curl_setopt($url, CURLOPT_HEADER, 0);
  18. $strona=curl_exec($url);
  19. #curl_close($url);
  20.  
  21. $DOM = new DOMDocument();
  22. @$DOM->LoadHTML(iconv("ISO-8859-2","UTF-8",$strona));
  23.  
  24. $tablica = array();  #deklaracja tablicy
  25.  
  26. $i = 0;
  27. foreach ($DOM->getElementsByTagName('div') as $div)
  28. {
  29.    $id = $div->getAttribute('id');
  30.    if($id == 'file_info_desc')
  31.    {
  32.        $desc= $div->nodeValue;
  33.    }
  34.  
  35.    $class = $div->getAttribute('class');
  36.    if($class == 'thumbnail')
  37.    {
  38.        foreach($div->getElementsByTagName('a') as $a)
  39.        {
  40.            $href = $a->getAttribute('href');
  41.            $array[$i]['href'] = $href;
  42.        }
  43.        foreach($div->getElementsByTagName('img') as $img)
  44.        {
  45.            $alt = $img->getAttribute('alt');
  46.            $array[$i]['alt'] = $alt;
  47.        }
  48.        $i++;
  49.    }
  50. }
  51. foreach ($array as $abc)
  52. {
  53.    $sql = "INSERT INTO test(`url`, `title`) VALUES(:url, :title)";
  54.    $statement = $pdo->prepare($sql);
  55.    $statement->bindValue(':url', $href, PDO::PARAM_STR);
  56.    $statement->bindValue(':title', $alt, PDO::PARAM_STR);
  57.    $statement->execute();
  58.    #var_dump($statement->errorInfo());
  59. }
  60.  
  61. ?>


dlaczego petla foreach ($array as $abc) zapisuje mi bazie 8 razy ostatni obiekt z tablicy a nie 8 roznych ktore posiada w tablicy?questionmark.gif
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.