Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Pobranie odpowiedniej części zawartości strony do tablicy/bazy danych
glupek
post 7.06.2018, 12:48:29
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 29.09.2017

Ostrzeżenie: (0%)
-----


Konkretnie.
Jest strona http://www.90minut.pl/strzelcy.php?id=9327.

Cel: pobranie nazwisk piłkarzy z drugiej części od "strzelcy według drużyn". Po prostu, imię i nazwisko każdego strzelca do kolejnych elementów tablicy.

Jak to zrobiłem do tej pory:

Idiotycznie. Ale próbowałem. Znalazłem gdzieś w internecie funkcję, która potrafi zwracać fragmenty ciągów znajdujące się pomiędzy danymi "tagami" - początkowym i końcowym. No więc ustawiłem, żeby pobierało od " " (spacja) do "," (przecinek) - tak mniej więcej na stronie umiejscowione są nazwiska piłkarzy. Potem wywalałem z elementów tablicy wszystko przed ":", żeby usunąć nazwy klubów. Następnie wyrzuciłem "-" i cyfry. O dziwo, udało mi się w ten sposób pobrać ze strony wszystkie nazwiska strzelców, ale... poza ostatnimi w każdej linijce. Dlaczego? Bo po nich nie ma "," (przecinka)

Ogólnie wyszło mi coś takiego:

  1. include("tekst.php");
  2.  
  3.  
  4. function getContents($str, $startDelimiter, $endDelimiter) {
  5. $contents = array();
  6. $startDelimiterLength = strlen($startDelimiter);
  7. $endDelimiterLength = strlen($endDelimiter);
  8. $startFrom = $contentStart = $contentEnd = 0;
  9. while (false !== ($contentStart = strpos($str, $startDelimiter, $startFrom))) {
  10. $contentStart += $startDelimiterLength;
  11. $contentEnd = strpos($str, $endDelimiter, $contentStart);
  12. if (false === $contentEnd) {
  13. break;
  14. }
  15. $huj = substr($str, $contentStart, $contentEnd - $contentStart);
  16. $huj = str_replace("-", "", $huj);
  17. $huj = preg_replace('/[0-9]+/', '', $huj);
  18. $chuj = strchr($huj, ":");
  19. $chuj = str_replace(":", "", $chuj);
  20. $chuj = str_replace(array("\n", "\n\r", "\r\n", "\r"), "guuwn", $chuj);
  21. if (strpos($chuj, "guuwn")!==false) $chuj = substr($chuj, 0, strpos($chuj, "guuwn"));
  22. if ($chuj!="") $contents[] = $chuj; else $contents[]=$huj;
  23. $startFrom = $contentEnd + $endDelimiterLength;
  24. }
  25.  
  26. return $contents;
  27. }
  28.  
  29. $tablica = getContents($tekst, ' ', ',');
  30. print_r($tablica);


Pytania:
1. Jak pobrać z tego tekstu nazwiska strzelców, którzy są ostatni w linijce? Myślę, że można by to zrobić przeszukując tekst od końca, między znakiem nowej linii (/n czy tam /r, nie wiem właśnie), a przecinkiem lub spacją... kurde nie wiem
2. Jak zrealizować cel w ludzki sposób, bez robienia takich głupstw jak wyżej
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.04.2024 - 03:22