Jak usprawnić program i jego wynik wyświetlić w excelu?

0

Witam!

Moje pytanie dotyczy programu utworzonego w oparciu o PHP i cURL, a dokładniej zastanawiam się w jaki sposób mógłbym usprawnić działanie programu i wynik przerzucić do tabeli w excelu? Wracając do programu, ma on za zadanie pobieranie informacji na temat wymagań gry. Potrzebuje do tego programu ponieważ tych danych jest ogrom, a muszę utworzyć bazę danych do projektu. Program chciałbym usprawnić pod takim względem, że jak pobiera mi te wszystkie dane ze strony, to są one podzielone osobno na procesor, GPU, RAM itd. i każda informacja jest wpisywana od razu do odpowiedniej komórki w excelu, czy coś takiego jest możliwe? Dziękuje za wszelkie rady.

<?php

$curl = curl_init();

for( $i = 23800; $i<23850; $i++)
{
$url = "https://www.game-debate.com/games/index.php?g_id=$i&game=";

curl_setopt($curl, CURLOPT_URL, $url );
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); //dezaktywuje ssl
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); //magazynuje 

$result = curl_exec($curl);

preg_match_all('!<div class="devDefSysReqMin">\n<ul class="devDefSysReqList">\n<li>(.*?)<\/li>.<li>\n(.*?).<\/li>\n<li>\n(.*?).<\/li>\n<li>\n(.*?)\n<\/li>\n<li>\n(.*?)\n<\/li>\n<li>(.*?)<\/li>\n<\/ul>\n<\/div>!', $result, $matches);

$CPU = array($matches[0]); //bez powtórzeń

print_r($CPU);

}

curl_close($curl);
?>
0

nie jest możliwe, możesz oczywiście utworzyć, zapisać lub wysłać do pobrania plik. ale nie, że pisząc w php będziesz edytować okno excela no takiej magii nie ma.

0

Ale w sensie, że Excel jako silnik bazy danych? :D

0

Możesz zrobić tak: program przez cURL pobiera dane, zapisuje do bazy danych, następnie w Excelu robisz sobie, np. przez ODBC połączenie z ta bazą i ciągniesz dane. Do tego jakieś makra, visual basic, etc. i można wszystko elegancko zrobić.

0

W sensie to wygląda tak, że tworzę bazę danych w MySQL, ale nie wiem jak zrobić program tak, żeby z takiego odcinka kodu:

<div class="devDefSysReqMin">
<ul class="devDefSysReqList">
<li>MINIMUM PC REQUIREMENTS: 720P 30 FPS AT LOW SETTINGS</li>
<li>O/S: Windows 7 64-bit, 8.1 64-bit or Windows 10 64-bit</li>
<li>CPU: Intel core i3-2100T @ 2.5GHz/AMD FX 6100, or better</li>
<li>RAM: 8GB</li>
<li>GPU: NVIDIA GeForce GTX 650Ti 2GB, AMD Radeon HD 7750 2GB</li>
<li>DirectX: 11 Compatible video card or equivalent</li>
<li>Hard Drive: 25GB</li>
<li>Input: At least one Xbox-compatible/PlayStation-compatible controller</li>
<li>Online connection requirements: 256KBPS or faster Internet connection</li> </ul>
</div>

pobierał mi dane "Procesor", "Karta Graficzna" i było to podzielone w miarę estetycznie, w sensie przypominało kolumny i wiersze jak w excelu, bądź udało się od razu po pobraniu treści wrzucić ją do excela, bazy w MySQL itp.

Może zmienić język, na jakiś JavaScript i tam próbować zrobić ten web scrapping?

0

Prawdę mówiąc opcja bazy danych była by dla mnie bardzo przydatna jeżeli by bardzo dobrze program działał i od razu wpisywał odpowiednią nazwę gry do odpowiednich podzespołów w sensie w odpowiednim rekordzie wszystko. Myślałem o Excelu jedynie pod względem bardziej technicznym żeby sprawdzić później te wszystkie dane :)

0

Robisz tabelę SQL, i wrzucasz do niej dane, to jest dość proste. Kwestia tylko jak / w czym to chcesz przeglądać - można podpiąć do excela, można oglądać w jakimś kliencie bazy danych - np. darmowy MySQL Workbench, albo PhpMyAdmin, albo samemu sobie zrobić skrypty w PHP do pobierania rekordów z bazy i wyświetlania, opcji masz wiele.

0

Ogólnie to chciałbym żeby to działało tak, że pobiera mi dane do zmiennej np. Porc-Min przypisze mi do zmiennej $PROCMIN no i później tą zmienną włożę do bazy w MySQL, a przeglądać ją chcę na stronie, ponieważ muszę stworzyć stornę internetową która wyświetla te wszystkie dane które włożę do niej :) Jedyny problem który teraz napotkałem, to że jak mam pętle for to każdy preg_match_all tworzy mi się w nowej tabeli, a jest możliwość żeby kilka wynikó z preg_match_all było w jednej tabeli w sensie array() i można było się dostać do danego wyników przez numer co ma przypisany, jest to chyba numer rekordu w tablicy jeżeli się nie mylę?

0

Zamiast robić skomplikowane długie wzorce zrób dwa proste:

preg_match_all('/<ul\s+class="devDefSysReqList">(.*?)<\/ul>/ims', $result, $result2);

preg_match_all('/<li>(.*?)<\/li>/ims', $result2[1][0], $matches);

print_r($matches[1]);

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0