Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]simple_html_dom podlinkowanie
Forum PHP.pl > Forum > Przedszkole
Olsz4k
  1. <?php
  2. include('simple_html_dom.php');
  3. require_once('url_to_absolute.php');
  4.  
  5. $url = 'http://e-pamir.pl/';
  6. $html = file_get_html($url);
  7.  
  8. $i=0;
  9. $j=0;
  10. $k=0;
  11. $l=0;
  12. $m=0;
  13. foreach($html->find('.product_icon img') as $element) {
  14. $i++;
  15. $href[$i] = url_to_absolute($url, $element->src);
  16. }
  17.  
  18. foreach($html->find('.cleardescription') as $element) {
  19. $j++;
  20. $opis[$j] = $element;
  21. }
  22.  
  23. foreach($html->find('.max_price') as $element) {
  24. $k++;
  25. $cena[$k] = $element;
  26. }
  27.  
  28. foreach($html->find('.price') as $element) {
  29. $l++;
  30. $cena_promo[$l] = $element;
  31. }
  32.  
  33. foreach($html->find('.product_name') as $element) {
  34. $m++;
  35. $tytul[$m] = $element;
  36. }
  37.  
  38. if ($i==$j)
  39. {
  40. $z = rand(0, $i);
  41.  
  42. '
  43. <div class="produkt">
  44. <img class="logo-pamir-small" src="pamir-logo.png">
  45. <span>'.$tytul[$z].'</span>
  46.  
  47. <a class="item" href="'.$href[$z].'"title="przedmiot">
  48. <img src="'.$href[$z].'" alt="przedmiot" />
  49. <span class="opis">'.$opis[$z].'</span>
  50. <span>'.$cena[$z].'</span>
  51. <span>'.$cena_promo[$z].'</span>
  52. </a>
  53. </div>';
  54.  
  55. }
  56. ?>
  57.  


Efekt jaki chciałem uzyskać to pobrać randomowo jeden produkt ze strony i wyświetlić tytuł, fotkę, opis oraz cenę starą + promocyjną. Powiedzmy że działa.
Potrzebuję teraz to podlinkować, tzn. aby po kliknięciu w tytuł/fotkę/opis albo cały box kierowało konkretnie do danego produktu. Nie mogę sobie jednak z tym poradzić. Próbowałem opakować całość w <a> ale niestety nic to nie daje. Obecnie po kliknięciu w obrazek kieruje jedynie do jego .jpg.
Po kliknięciu w tytuł jest właściwa ścieżka, wystarczyłoby ją lekko przerobić, tzn. dodać do niej na sam początek domenę sklepu i by działało, jednak wyciągając cały tytuł wyciąga razem ze znacznikiem <a>. Czy da się np. wyciągnąć sam text z danego znacznika? Myślę że to by mi mogło pomóc, a jeżeli źle myślę to proszę o nakierowanie.
fastlone
Spróbuj w ten sposób:
  1. foreach($html->find('.product_icon img') as $element) {
  2. $i++;
  3. $href[$i] = url_to_absolute($url, $element->src);
  4. }

zamień na
  1. foreach($html->find('.product_icon img') as $element) {
  2. $i++;
  3. $img[$i] = url_to_absolute($url, $element->src);
  4. }
  5. foreach($html->find('a .product_icon') as $element) {
  6. $i++;
  7. $href[$i] = url_to_absolute($url, $element->href);
  8. }



a to
  1. <a class="item" href="'.$href[$z].'"title="przedmiot">
  2. <img src="'.$href[$z].'" alt="przedmiot" />

zamień na
  1. <a class="item" href="'.$href[$z].'"title="przedmiot">
  2. <img src="'.$img[$z].'" alt="przedmiot" />
Olsz4k
niestety, nic to nie dało sad.gif
fastlone
Jaki link pojawia się w odnośniku?
Olsz4k
Nie ma ścieżki, jest pusta: localhost/

  1. <?php
  2. include('simple_html_dom.php');
  3. require_once('url_to_absolute.php');
  4.  
  5. $url = 'http://e-pamir.pl/';
  6. $html = file_get_html($url);
  7.  
  8. $i=0;
  9. $j=0;
  10. $k=0;
  11. $l=0;
  12. $m=0;
  13. foreach($html->find('.product_icon img') as $element) {
  14. $i++;
  15. $img[$i] = url_to_absolute($url, $element->src);
  16. }
  17. foreach($html->find('a .product_icon') as $element) {
  18. $i++;
  19. $href[$i] = url_to_absolute($url, $element->href);
  20. }
  21.  
  22. foreach($html->find('.cleardescription') as $element) {
  23. $j++;
  24. $opis[$j] = $element;
  25. }
  26.  
  27. foreach($html->find('.max_price') as $element) {
  28. $k++;
  29. $cena[$k] = $element;
  30. }
  31.  
  32. foreach($html->find('.price') as $element) {
  33. $l++;
  34. $cena_promo[$l] = $element;
  35. }
  36.  
  37. foreach($html->find('.product_name') as $element) {
  38. $m++;
  39. $tytul[$m] = $element;
  40. }
  41.  
  42. if ($i==$j)
  43. {
  44. $z = rand(0, $i);
  45.  
  46. '
  47. <div class="produkt">
  48. <img class="logo-pamir-small" src="pamir-logo.png">
  49. <span>'.$tytul[$z].'</span>
  50.  
  51. <a class="item" href="'.$href[$z].'"title="przedmiot">
  52. <img src="'.$img[$z].'" alt="przedmiot" />
  53. <span class="opis">'.$opis[$z].'</span>
  54. <span>'.$cena[$z].'</span>
  55. <span>'.$cena_promo[$z].'</span>
  56. </a>
  57. </div>';
  58.  
  59. }
  60. ?>
  61.  
fastlone
A taka wersja?
  1. foreach($html->find('a.product_icon') as $element) {
  2. $i++;
  3. $href[$i] = url_to_absolute($url, $element->href);
  4. }
Usunąłem spację, której nie było w przykładach na sourceforge.
Olsz4k
  1. foreach($html->find('a.product_icon') as $element) {
  2. $n++;
  3. $href[$n] = url_to_absolute($url, $element->href);
  4. }


Tak przeszło, trzeba było dołożyć nową zmienną. Dzięki za pomoc smile.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.