Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Jak zrobić cennik
Forum PHP.pl > Forum > Przedszkole
slawek3422
Witam.
Od dłuższego czasu użeram się z aktualizacją cen w sklepie internetowym. Dystrybutor nawet kilka razy dziennie zmienia ceny, pół biedy jak obniża ale jak podnosi to zaliczam plecy. Chciałbym zrobić jakiś skrypt / system, który pobierze mi z jego strony aktualne ceny i zaktualizuje je u mnie ... obecnie robię aktualizacje 5000 produktów z użyciem pliku txt.

Mój sklep jest oparty na MySQL więc nie ma problemu z dostępem do odpowiednich produktów i aktualizacji w pętli. Problem pojawia się u dystrybutora bo już wiem, że nie da mi dostępu do swojej bazy danych.

Zacząłem czytać na temat cURL ale jakoś toporna ta biblioteka i nie znalazłem w miarę jasnego opisu wraz z konkretnymi przykładami ( za wyjątkiem jakichś prób pobrania wyników z google'a)

Prosiłbym o jakieś sugestie ... strona dystrybutora: http://www.cortland.com.pl i np chce uaktualnić oprogramowanie Adobe ...
laohost
To wcale nie będzie takie trudne. Musisz napisać skrypt, który pobierze stronę produktu i wyciągnąć cenę za pomocą wyrażeń regularnych. Skrypt możesz uruchomiać co godzinę (CRON).
slawek3422
tyle to też wydedukowałem smile.gif problem w tym, że nie mam doświadczenia z cURL-em i myślę o jakimś innym rozwiązaniu ... o ile istnieje
Wicepsik
file_get_contents + preg_match + preg_match_all
CyberDuck_
A Masz mozliwosc dogadania sie z tym gosciem ?
Niech w miejscu gdzie dopisuje dane do bazy danych
napisze cos takiego :

  1. @$wynik = @file_get_contents("http://adres_twojej_strony?produkt=$nr&nowa_cena=$cena&haslo=$haslo");


Oczywiscie to tylko przyklad, ale jesli bedzie kumaty to bedzie
wiedzial, ze to niczym mu nie grozi, a jedynie wysyla do Twojego
skryptu dane, ktore Ci sa potrzebne i beda zmieniane natychmiastowo.
Fifi209
Cytat(slawek3422 @ 21.09.2009, 16:16:21 ) *
Zacząłem czytać na temat cURL ale jakoś toporna ta biblioteka i nie znalazłem w miarę jasnego opisu wraz z konkretnymi przykładami ( za wyjątkiem jakichś prób pobrania wyników z google'a)

O cURL jest dużo na necie...

http://wortal.php.pl/wortal/artykuly/php/b...i_protokol_http
http://wortal.php.pl/wortal/artykuly/php/b..._2_protokol_ftp

i:
cURL

To Ci wystarczy do nauki.
slawek3422
poczytałem troszkę i wyszło mi coś takiego:
  1. <?php
  2. $adresy[] = "http://cortland.com.pl/Acrobat-Professional_idc=5_27_585.html";
  3. $adresy[] = "http://cortland.com.pl/Acrobat-Standard_idc=5_27_587.html";
  4. $adresy[] = "http://cortland.com.pl/After-Effects-CS4_idc=5_27_992.html";
  5. $adresy[] = "http://cortland.com.pl/Audition_idc=5_27_181.html";
  6. $adresy[] = "http://cortland.com.pl/Captivate_idc=5_27_508.html";
  7. $adresy[] = "http://cortland.com.pl/ColdFusion_idc=5_27_873.html";
  8. $adresy[] = "http://cortland.com.pl/Contribute-CS4_idc=5_27_1003.html";
  9. $adresy[] = "http://cortland.com.pl/CS4-Design-Premium_idc=5_27_994.html";
  10. $adresy[] = "http://cortland.com.pl/CS4-Design-Standard_idc=5_27_996.html";
  11. $adresy[] = "http://cortland.com.pl/CS4-Master-Collection_idc=5_27_997.html";
  12. $adresy[] = "http://cortland.com.pl/CS4-Production-Prem_idc=5_27_998.html";
  13. $adresy[] = "http://cortland.com.pl/CS4-Web-Premium_idc=5_27_1000.html";
  14. $adresy[] = "http://cortland.com.pl/CS4-Web-Standard_idc=5_27_1002.html";
  15. $adresy[] = "http://cortland.com.pl/Director_idc=5_27_876.html";
  16. $adresy[] = "http://cortland.com.pl/Dreamweaver-CS4_idc=5_27_1004.html";
  17. $adresy[] = "http://cortland.com.pl/Fireworks-CS4_idc=5_27_1005.html";
  18. $adresy[] = "http://cortland.com.pl/Flash-CS4_idc=5_27_1006.html";
  19. $adresy[] = "http://cortland.com.pl/Flash-Media-Server_idc=5_27_1014.html";
  20. $adresy[] = "http://cortland.com.pl/Flex-Builder_idc=5_27_898.html";
  21. $adresy[] = "http://cortland.com.pl/FrameMaker_idc=5_27_52.html";
  22. $adresy[] = "http://cortland.com.pl/Freehand_idc=5_27_866.html";
  23. $adresy[] = "http://cortland.com.pl/Illustrator-CS4_idc=5_27_1007.html";
  24. $adresy[] = "http://cortland.com.pl/InCopy-CS4_idc=5_27_1008.html";
  25. $adresy[] = "http://cortland.com.pl/InDesign-CS4_idc=5_27_1009.html";
  26. $adresy[] = "http://cortland.com.pl/Lightroom_idc=5_27_790.html";
  27. $adresy[] = "http://cortland.com.pl/PageMaker_idc=5_27_54.html";
  28. $adresy[] = "http://cortland.com.pl/Photoshop-CS4_idc=5_27_1010.html";
  29. $adresy[] = "http://cortland.com.pl/Photoshop-Elements_idc=5_27_586.html";
  30. $adresy[] = "http://cortland.com.pl/Premiere-Pro-CS4_idc=5_27_1012.html";
  31. $adresy[] = "http://cortland.com.pl/Acrobat_idc=5_909_863.html";
  32. $adresy[] = "http://cortland.com.pl/Acrobat-Pro_idc=5_909_870.html";
  33. $adresy[] = "http://cortland.com.pl/Acrobat-Std_idc=5_909_871.html";
  34. $adresy[] = "http://cortland.com.pl/After-Effects_idc=5_909_20.html";
  35. $adresy[] = "http://cortland.com.pl/Audition_idc=5_909_181.html";
  36. $adresy[] = "http://cortland.com.pl/Authorware_idc=5_909_73.html";
  37. $adresy[] = "http://cortland.com.pl/Captivate_idc=5_909_508.html";
  38. $adresy[] = "http://cortland.com.pl/ColdFusion_idc=5_909_873.html";
  39. $adresy[] = "http://cortland.com.pl/Contribute_idc=5_909_108.html";
  40. $adresy[] = "http://cortland.com.pl/CS4-Design-Prem_idc=5_909_993.html";
  41. $adresy[] = "http://cortland.com.pl/CS4-Design-Std_idc=5_909_995.html";
  42. $adresy[] = "http://cortland.com.pl/CS4-Master-Col_idc=5_909_1013.html";
  43. $adresy[] = "http://cortland.com.pl/CS4-Web-Prem_idc=5_909_999.html";
  44. $adresy[] = "http://cortland.com.pl/CS4-Web-Std_idc=5_909_1001.html";
  45. $adresy[] = "http://cortland.com.pl/Director_idc=5_909_876.html";
  46. $adresy[] = "http://cortland.com.pl/Dreamweaver_idc=5_909_865.html";
  47. $adresy[] = "http://cortland.com.pl/Fireworks_idc=5_909_795.html";
  48. $adresy[] = "http://cortland.com.pl/Flash_idc=5_909_877.html";
  49. $adresy[] = "http://cortland.com.pl/Flex-Builder_idc=5_909_898.html";
  50. $adresy[] = "http://cortland.com.pl/Freehand_idc=5_909_866.html";
  51. $adresy[] = "http://cortland.com.pl/Homesite_idc=5_909_880.html";
  52. $adresy[] = "http://cortland.com.pl/Illustrator_idc=5_909_50.html";
  53. $adresy[] = "http://cortland.com.pl/InCopy_idc=5_909_643.html";
  54. $adresy[] = "http://cortland.com.pl/InDesign_idc=5_909_37.html";
  55. $adresy[] = "http://cortland.com.pl/Jrun_idc=5_909_878.html";
  56. $adresy[] = "http://cortland.com.pl/Lightroom_idc=5_909_790.html";
  57. $adresy[] = "http://cortland.com.pl/Ovation_idc=5_909_788.html";
  58. $adresy[] = "http://cortland.com.pl/PageMaker_idc=5_909_54.html";
  59. $adresy[] = "http://cortland.com.pl/Photoshop_idc=5_909_388.html";
  60. $adresy[] = "http://cortland.com.pl/Premiere-Elements_idc=5_909_935.html";
  61. $adresy[] = "http://cortland.com.pl/Premiere-Pro_idc=5_909_934.html";
  62. $adresy[] = "http://cortland.com.pl/Production-Prem_idc=5_909_936.html";
  63.  
  64. $lenght = count($adresy);
  65. for($m=0;$m<=$lenght;$m++){
  66.  
  67. $site = curl_init($adresy[$m]);
  68.  
  69.  
  70. curl_setopt($site, CURLOPT_RETURNTRANSFER, true);
  71. $page = curl_exec($site);
  72. if (preg_match('/<td style="color: #000000; padding: 3px; padding-left: 7px" align="left">(.*)<\/nobr/s', $page, $matches)) {
  73. $row = strip_tags($matches[1]);
  74. $row = str_replace("\n", "", $row);
  75. $row = str_replace("\r", "", $row);
  76. $row = str_replace(" ", "", $row);
  77. $row = str_replace(" ", "", $row);
  78.  
  79. $tablica = explode(" ", trim($row));
  80. }
  81.  
  82. $dlugosc = count($tablica);
  83. $liczba = 4;
  84. for($i=0;$i<=$dlugosc;$i++){
  85. $mod = $i % $liczba;
  86. if($mod == 0){
  87. $j = $i+1;
  88. echo $tablica[$i]."&nbsp;&nbsp;".str_replace(" ", "", $tablica[$j])."<br>";
  89.  
  90. }
  91. }
  92. }
  93. ?>


ciekawi mnie dlaczego skrypt za każdym razem pobiera różną ilość wyników, nigdy nie zdarzyło się, żeby pobrał wszystkie produkty, o które mi chodzi ... co robię źle ?

może ktoś się spotkał z tym, że curl nie działa dobrze w pętli itp. albo, że nie radzi sobie z wieloma zapytaniami w krótkim czasie, probowałem dawać interwał w pętli ale nie pomogło ...
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.