Reklama
Pokazuje wyniki od 1 do 5 z 5

Temat: Pomoc ze skryptem PHP

  1. #1
    Avatar Rollercoster
    Data rejestracji
    2011
    Wiek
    29
    Posty
    1,247
    Siła reputacji
    14

    Domyślny Pomoc ze skryptem PHP

    Witam
    Potrzebuję z poniższego linku wyciągnąć całą tabele "Nadchodzace Puchary" i pogrupować ja na:
    -data
    -godzina
    -Nazwa turnieju
    i ewentualnie dzień tygodnia.
    Później sobie to zapiszę do bazy i będę działał.
    Załóżmy że kod HTML już pobrałem i mam go w zmiennej $cała_strona.


    I tylko z tym mam problem.
    Skrypt polega na wysyłaniu smsów do członków mojej drużyny.
    Najprawdopodobniej będzie odpalany z crona, później sprawydzi czy są jakieś turnieje i w zależności od daty wyśle sms do wszystkich.
    Wiem że trzeba użyć wyrażeń regularnych aby to wszystko posortować.
    Czy ktoś mógłby mi pomóc to napisać?

    Kod całej tabelki: http://wklej.org/id/1111478/
    Link: http://www.esl.eu/pl/wot/

  2. #2
    Avatar Malpa of Hell
    Data rejestracji
    2006
    Położenie
    Stargard
    Wiek
    30
    Posty
    556
    Siła reputacji
    19

    Domyślny

    Kod PHP:
    <?php
    function GrabData($string) {
    	$DOM = new DOMDocument;
    	$DOM->loadHTML($string);
    	$items = $DOM->getElementsByTagName('td');
    	$data = array();
    	$_i = 0; // bo lubie ladne indexy
    	$counter=0;
    	for ($i = 0; $i < $items->length; $i++) {
    		// restartuje licznik jesli trzeba
    		if ( $counter == 3 ) {
    			$counter = 0;
    		}
    		if ( $items->item($i)->nodeValue == "" ) continue;
    		$value = $items->item($i)->nodeValue;
    		$isLink = $items->item($i)->getElementsByTagName('a')->length;
    		if ( $isLink ) {
    			$value = $items->item($i)->getElementsByTagName('a')->item(0)->nodeValue;
    		}
    		if ( $counter == 0 ) {
    			$currentBlock = $_i;
    			$rawDate = trim($value);
    			$rawDate = explode(", ", $rawDate); // rozdziela dzien tygodnia od reszty daty
    			unset($rawDate[0]);
    			$rawDate = explode(" ", $rawDate[1]); // rozdziela dzien od godziny
    			$data[$currentBlock]["time"] = $rawDate[1];
    			$data[$currentBlock]["date"] = $rawDate[0];
    			$data[$currentBlock]["timestamp"] = strtotime($data[$currentBlock]["time"], strtotime(str_replace("/", ".", $rawDate[0]))); // unix timestamp
    			$data[$currentBlock]["datetime"] =  date("Y-m-d H:i:s", $data[$currentBlock]["timestamp"]); // MySQL DATETIME
    			
    		}
    		if ( $counter == 1 && isset($currentBlock) ) {
    			$data[$currentBlock]["tournament"] = trim($value);
    			unset($currentBlock);
    			++$_i;
    		}
    		++$counter;
    	}
    	return (!empty($data) ? $data : false);
    }
    ?>
    output:
    Kod:
    Array
    (
        [0] => Array
            (
                [time] => 19:20
                [date] => 20/08/13
                [timestamp] => 1377019200
                [datetime] => 2013-08-20 19:20:00
                [tournament] => WoT 7on7 Z&#197;‚oto dla Zuchwa&#197;‚ych #66
            )
    
        [1] => Array
            (
                [time] => 17:00
                [date] => 24/08/13
                [timestamp] => 1377356400
                [datetime] => 2013-08-24 17:00:00
                [tournament] => WoT 3on3 Z&#197;‚oty Pluton #62
            )
    
        [2] => Array
            (
                [time] => 19:20
                [date] => 27/08/13
                [timestamp] => 1377624000
                [datetime] => 2013-08-27 19:20:00
                [tournament] => WoT 7on7 Z&#197;‚oto dla Zuchwa&#197;‚ych #67
            )
    
        [3] => Array
            (
                [time] => 17:00
                [date] => 31/08/13
                [timestamp] => 1377961200
                [datetime] => 2013-08-31 17:00:00
                [tournament] => WoT 3on3 Z&#197;‚oty Pluton #63
            )
    
    )
    Sprawdzalem tylko z kodem tabelki, przy calej stronie pewnie sie rozsypie =d

  3. Reklama
  4. #3
    Avatar Rollercoster
    Data rejestracji
    2011
    Wiek
    29
    Posty
    1,247
    Siła reputacji
    14

    Domyślny

    Oki dziękuję bardzo, tylko teraz mam problem z dostaniem się do tych tablic.
    Jakbyś mógł mi jeszcze napisać jak to np. wyświetlić.
    Próbuję tak ale nie idzie:
    Kod PHP:
    $result = GrabData($string); 
    $first = $result[0];
    
    echo "$first[time]";
    @edit
    Oczywiście do $string jest przypisany cały kod tabelki - http://wklej.org/id/1111478/

  5. #4
    Avatar Malpa of Hell
    Data rejestracji
    2006
    Położenie
    Stargard
    Wiek
    30
    Posty
    556
    Siła reputacji
    19

    Domyślny

    Kod PHP:
    $dataArray = GrabData($string);
    if ( $dataArray ) {
    	// \n - nowa linia, %s - podmienia za otrzymany string
    	printf("%s odbędzie się dnia %s o godzinie %s.<br>\n", $dataArray[0]["tournament"], $dataArray[0]["date"], $dataArray[0]["time"]);
    	// mozna tez tak
    	echo $dataArray[0]["tournament"] . " obbędzie się dnia " . $dataArray[0]["date"] . " o godzinie " . $dataArray[0]["time"] . "<br>\n";
    	// lub tez wyswietlic wszystkie wpisy
    	for($i=0,$size=count($dataArray);$i<$size;++$i) { // petla, $i trzyma obecny index
    		printf("%s odbędzie się dnia %s o godzinie %s.<br>\n", $dataArray[$i]["tournament"], $dataArray[$i]["date"], $dataArray[$i]["time"]);
    	}
    } else {
    	echo "Brak danych";
    }

  6. #5
    Avatar Rollercoster
    Data rejestracji
    2011
    Wiek
    29
    Posty
    1,247
    Siła reputacji
    14

    Domyślny

    Dzieki wielkie :)
    Jednak mój sposób był dobry tylko źle includowałem plik z kodem html :)
    Teraz tylko to dopracuje i będzie git :)
    Bóg zapłać !

Reklama

Informacje o temacie

Użytkownicy przeglądający temat

Aktualnie 1 użytkowników przegląda ten temat. (0 użytkowników i 1 gości)

Podobne tematy

  1. Odpowiedzi: 2
    Ostatni post: 15-06-2016, 23:28
  2. Problem ze skryptem od Jxscript
    Przez StoxXaka w dziale Tibia
    Odpowiedzi: 2
    Ostatni post: 07-09-2014, 15:46
  3. PHP - pomoc w rozszerzeniu opcji.
    Przez Zakon w dziale Programowanie
    Odpowiedzi: 16
    Ostatni post: 11-04-2013, 03:52
  4. Skrypt PHP - przesyłanie danych z formularza php do pliku .txt
    Przez Żarówa2SR w dziale Sprzęt i oprogramowanie
    Odpowiedzi: 1
    Ostatni post: 24-10-2012, 17:06
  5. [Ibot] Problem z skryptem/botem
    Przez Adisky w dziale Tibia
    Odpowiedzi: 8
    Ostatni post: 24-09-2012, 07:37

Zakładki

Zakładki

Zasady postowania

  • Nie możesz pisać nowych tematów
  • Nie możesz pisać postów
  • Nie możesz używać załączników
  • Nie możesz edytować swoich postów
  •