Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Funkcja do wydobywania ID z linku allegro. Prosze o poprawki kodu.
Forum PHP.pl > Forum > PHP
froghat
witam serdecznie Panowie. Napisałem funkcję która ma za zadanie wydobyć id z linku allegro. Proszę o opinie i jeżeli to możliwe jakieś poprawki które usprawnią działanie funkcji. Tu zamieszczam funkcję:

Tu zamieszczam przykładowe linki allegro z których trzeba wydobyć ID:
Kod
http://allegro.pl/diesel-time-duzy-modny-zegarek-meski-promocja-i1740153263.html
http://allegro.pl/show_item.php?item=1740153263


to linki do tej samej aukcji.
zmienna $zrodlo to oczywiście wyżej wymienione linki.

  1. function wyluskajID($zrodlo)
  2. {
  3. $dlugosctekstu = strlen($zrodlo); //sprawdzam dlugosc linku
  4. $tekstzrodlowy = str_split ($zrodlo); //rozdzielam link na tablice znaków
  5. $id = array(); //tablica wynikowa z numerem ID
  6. $licznik = 0; //zmienna pomocnicza
  7. $wynik; //tu przechowuje wartosc wynikowa czyli ostateczne ID
  8. for($i =$dlugosctekstu ; $i>=0 ; $i--) //pętla która iteruje tablice od tylu
  9. {
  10. if($tekstzrodlowy[$i] == 'i' || $tekstzrodlowy[$i] =='=') //sprawdzam jaki jest znak przed ID w linku
  11. {
  12. for($i; $i<=$dlugosctekstu ; $i++) //przepisuje tablice w kolejnosci odwrotnej do tablicy $id
  13. {
  14. if(is_numeric($tekstzrodlowy[$i])) //sprawdzenie czy znak to cyfra
  15. {
  16. $id[$licznik++] = $tekstzrodlowy[$i];
  17. }
  18. }
  19. $wynik = implode('', $id); //połaczenie tablicy w jedna liczbe
  20. break;
  21.  
  22. }
  23. }
  24.  
  25. return $wynik; //zwrocenie ID
  26. }



Proszę o wszelkie sugestie i uwagi.

Pozdrawiam
Piogola
W prostszy sposób można wydobić id
  1. $text = 'http://allegro.pl/diesel-time-duzy-modny-zegarek-meski-promocja-i1740153263.html
  2. <a href="http://allegro.pl/show_item.php?item=1740153263';" target="_blank">http://allegro.pl/show_item.php?item=1740153263';</a>
  3.  
  4. preg_match_all('#(i|\?item=)([0-9]+)#', $text, $match);
  5. print_r($match);
froghat
no tak ale link ma dwie postacie i nie zawsze jest "item=" questionmark.gif
Czasami też w linku pojawiają się np inne liczby jak 2011 lub promocja -60% chce żeby wydobył tylko ID.

OK dzieki za pomoc. Działa super:)
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.