Zadejte hledaný výraz...

Načtení SSL CSV dat, naparsování a import do databáze

One
verified
rating uzivatele
5. 10. 2010 02:07:20
Načtení SSL CSV dat, naparsování a import do databáze
PHP5,MYSQL5
ahoj, potřeboval bych s tímto pomoci,
začneme takto - existuje nějaký příkládek pro nakopnutí?
pak bychom to rozebrali
díky všem...
5. 10. 2010 02:07:20
https://webtrh.cz/diskuse/nacteni-ssl-csv-dat-naparsovani-a-import-do-databaze#reply568978
phpMyAdmin?
5. 10. 2010 06:10:44
https://webtrh.cz/diskuse/nacteni-ssl-csv-dat-naparsovani-a-import-do-databaze#reply568977
predaj.domen
verified
rating uzivatele
(1 hodnocení)
5. 10. 2010 08:29:46
jednoducho z MySQL:
viac o importe si prečítaj na:
http://dev.mysql.com/doc/refman/5.1/en/load-data.html
5. 10. 2010 08:29:46
https://webtrh.cz/diskuse/nacteni-ssl-csv-dat-naparsovani-a-import-do-databaze#reply568976
One
verified
rating uzivatele
5. 10. 2010 14:57:20
asi jsem se nevyjádřil přesně? Chci PHP skript - má mi to tahat z https:// v pravidelných intervalech 1-10minutových, budu ho spouštět CRONem (bulk import ani MyAdmin nepotřebuji) a z bezpečnostního důvodu to nechci ani ukládat na disk (to by se objevilo v nějaké záloze filesystemu a to nechci)...
Duplicitu pořeším primárním klíčem v databázi, bude stejný jako v CSV, tím se tedy naimportují jen nové záznamy...
Jen trochu jsem zatím nejistý v cyklech a těchle věcech, nejradši bych jako parametr určil URL, pořadí sloupců a odskok, od jakého řádku (trochu nestandardního) CSV importovat (5 řádek je header a 6 řádej začínají efektivní data) a pak ještě přeskočit poslední řádek csv obsahuje součet, ten bych taky potřeboval odpálit... Přičemž není předem jasné, kolik celkem řádků CSV bude (20 nebo 3000)
5. 10. 2010 14:57:20
https://webtrh.cz/diskuse/nacteni-ssl-csv-dat-naparsovani-a-import-do-databaze#reply568975
Kamil Tomšík
verified
rating uzivatele
(3 hodnocení)
5. 10. 2010 16:12:45
pro ssl budes asi potrebovat curl - http://php.net/curl
pro nacteni do pole staci explode: http://php.net/explode
nasledny orez pole - array_slice - http://php.net/array_slice
a pak to projdes a pomoci str_getcsv (http://php.net/str_getcsv) parsnes a nacpes do databaze...
orientacni priklad:
//vytahnuti pres ssl (ignorujeme certifikaty)
$curl = curl_init ( "https://site_name.cz" );
curl_setopt_array ( $curl, array (
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYPEER => false
) );
$input = curl_exec ( $curl );
//rozsekani na radky
$lines = array_map ( "trim", explode ( "n", $input ) );
//orez nezajimavych radku (vytahne radky 5-predposledni)
$important = array_slice ( $lines, 4, -1 );
//pripojeni k db a pripraveni insertu - predpokladame 3 sloupce
$pdo = new PDO ( "mysql:dbname=database;host=127.0.01", "root", "" );
$st = $pdo -> prepare ( "insert into table_name (col1, col2, col3) values (?, ?, ?)" );
//projiti radku a nacpani do databaze
foreach ( $important as $line )
$st -> execute ( str_getcsv ( $line, ";" ) );
5. 10. 2010 16:12:45
https://webtrh.cz/diskuse/nacteni-ssl-csv-dat-naparsovani-a-import-do-databaze#reply568974
One
verified
rating uzivatele
6. 10. 2010 13:32:15
prosimte, https otevru i pres fsockopen (ted sem si s tim malinko pohral), akorat se vysledek vrati vcetne http headeru...
myslim, ze bude potreba vysledek nejak projit, a najit (napocitat) radek (napriklad podle headeru csv dat, efektivni zacinaji HNED pod nim), na kterym zacinaji a konci efektivni data, jak byste to udelali, kdyby header byl takto: "data;id;suma;...." - asi trivialita no pro me hard core...
protoze header se muze kdykoliv zmenit (zmenou verze serveru treba pribude v headeru radek a prestane to fungovat)...
a CRLF ten soubor ma defaultne, tak asi nebude nutny ho sekat na radky?
a ja tvuj bank. ucet neznam :)
DIKY za napady...
Kazdej dostane reputaci...
6. 10. 2010 13:32:15
https://webtrh.cz/diskuse/nacteni-ssl-csv-dat-naparsovani-a-import-do-databaze#reply568973
Kamil Tomšík
verified
rating uzivatele
(3 hodnocení)
6. 10. 2010 17:01:37
ad ssl, nevim co bude delat fsockopen, nepouzivam snad nikdy, moje reseni bude fungovat i v pripade propadlych certifikatu
ad struktura souboru - soupni sem kus toho souboru, at vime, o cem se bavis, jeden priklad vyda za tisic slov.
na radky sekame, protoze str_getcsv prijima jeden radek a curl vrati obsah jako jeden retezec
podle toho, cos rekl, bych udelal jenom ciste preg_match zacatku souboru a kdyz to chcipne, tak bych poslal sam sobe
mail, ze se zmenila struktura souboru - tohle se nebude stavat casto a uprava ti zabere min casu, nez implementace "golden hammer"
a jeste jedna vec: tohle je necim specialni? a nebo proc se to lisi od jinych importu z csv? podivej se, jak to dela konkurence, nejaky opensource system treba (pokud existuje podobny obor)
6. 10. 2010 17:01:37
https://webtrh.cz/diskuse/nacteni-ssl-csv-dat-naparsovani-a-import-do-databaze#reply568972
One
verified
rating uzivatele
12. 10. 2010 05:32:25
.
12. 10. 2010 05:32:25
https://webtrh.cz/diskuse/nacteni-ssl-csv-dat-naparsovani-a-import-do-databaze#reply568971
One
verified
rating uzivatele
20. 10. 2010 06:33:36
nemas tam nahodou chybu?
curl_setopt_array ( array (
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYPEER => false
) );
Warning: curl_setopt_array() expects exactly 2 parameters, 1 given in /var/www/web/bost.php on line 20
http://cz.php.net/manual/en/function.curl-setopt-array.php
beznej zapis je
curl_setopt_array(&$ch, $curl_options)
no ja tomu nerozumim, kazdopadne to nefunguje :-(
20. 10. 2010 06:33:36
https://webtrh.cz/diskuse/nacteni-ssl-csv-dat-naparsovani-a-import-do-databaze#reply568970
Kamil Tomšík
verified
rating uzivatele
(3 hodnocení)
21. 10. 2010 10:39:07
ano, mas pravdu, chybel mi tam jeden parametr (opravil jsem v prikladu)
21. 10. 2010 10:39:07
https://webtrh.cz/diskuse/nacteni-ssl-csv-dat-naparsovani-a-import-do-databaze#reply568969
One
verified
rating uzivatele
21. 10. 2010 14:25:44
problem ale je, ze
echo $input ;
mi nic nevrati, mozna mu vadi chyejici user agent, zkusim ty veci doplnit,
jo tak bylo to tim usr agentem, beru zpet
21. 10. 2010 14:25:44
https://webtrh.cz/diskuse/nacteni-ssl-csv-dat-naparsovani-a-import-do-databaze#reply568968
One
verified
rating uzivatele
22. 10. 2010 09:55:15
vše již skoro OK, akorát str_getcsv vyžaduje nové PHP a to nemám a upgrade není možný (výsledek je = neznámá funkce), jak to lze obejít, nahradit? Dík...
Nejdřív jsem soi to chtěl vypsat na obrazovku, než to budu sázet do DB, ono
22. 10. 2010 09:55:15
https://webtrh.cz/diskuse/nacteni-ssl-csv-dat-naparsovani-a-import-do-databaze#reply568967
One
verified
rating uzivatele
22. 11. 2010 10:24:28
protože mám starší php bez 'str_getcsv', použil jsem toto:
if (!function_exists('str_getcsv')) {
function str_getcsv($input, $delimiter=';', $enclosure='"', $escape=null, $eol=null) {
$temp=fopen("php://memory", "rw");
fwrite($temp, $input);
fseek($temp, 0);
$r=fgetcsv($temp, 4096, $delimiter, $enclosure);
fclose($temp);
return $r; }}
ale potrebuji nektera policka, pred poslanim do databate, upravit:
v poli:
=> 22.11.2010 - tady potřebuju změnit datum na formát kompatibilní s Mysql, nebot mi to vklada datum: 2022-11-20
=> -2 212,51 - tady potřebuju vynechat mezeru a des. čárku zaměnit na tečku
=> eská republika - tady potřebuju změnu z CP1250 na UTF8, navíc patrně "fgetcsv" uřezává první diakritický znak (v poli je eská republika a ne Česká republika)
=> - tady potřebuju doplnit aktualní datetime - Now()
makopněte mě, jak toho dosáhnu? Díky za každou i dílčí radu...
22. 11. 2010 10:24:28
https://webtrh.cz/diskuse/nacteni-ssl-csv-dat-naparsovani-a-import-do-databaze#reply568966
Kamil Tomšík
verified
rating uzivatele
(3 hodnocení)
23. 11. 2010 03:47:57
nakopnu te, ale do zadku, a zadarmo - je to sice easy, ale vzhledem k tomu, ze mi pises PM a nahanis me i na icq, tak ti neporadim
a zapracuj na svem chovani...
23. 11. 2010 03:47:57
https://webtrh.cz/diskuse/nacteni-ssl-csv-dat-naparsovani-a-import-do-databaze#reply568965
One
verified
rating uzivatele
23. 11. 2010 09:09:05
tak moc díky,
sám jsi mi napsal, že ti mám napsat na Icq a kvůli tobě jsem si ho nainstaloval, zapracuj na svém chování spíš Ty...
23. 11. 2010 09:09:05
https://webtrh.cz/diskuse/nacteni-ssl-csv-dat-naparsovani-a-import-do-databaze#reply568964
Pro odpověď se přihlašte.
Přihlásit