ohmygod Posted November 29, 2005 Report Share Posted November 29, 2005 Vārdu sakot uzrakstīju maziņu skriptiņu, kam būtu jāsavāc visa šā gada valūtas kursi failos. Tas tā - gribēj paķēmoties un statistiku uztaisīt. <?PHP $map='val_kursi/'; for($i=1; $i<=11; $i++){ for($y=1; $y<=31; $y++){ if(strlen($i) == 1){$ii='0'.$i;}else {$ii=$i;} if(strlen($y) == 1){$yy='0'.$y;}else {$yy=$y;} if(checkdate($ii, $yy, '2005')){ $a=file('http://www.bank.lv/excel/valkurlv.php?vdate=2005'.$ii.$yy); $fname=$map.'2005'.$ii.$yy.'.txt'; $file=fopen($fname, 'wb'); foreach($a as $cont){ fwrite($file, $cont); } fclose($file); } } } ?> Nevajag aprun't kodu - ka'ds nu ir, tāds ir. Problēma ir iekš tamo, ka palaižot no pārlūka - viss smuki izpildās. Ja neskaita to, ka max execution time beidzas janvāra vidū... :D (defaultās 30 sek) Palaižot šo pašu no komandrindas ir errori: Warning: fwrite(): supplied argument is not a valid stream resource in D:\web\~\bank.php on line 12 PHP Warning: fclose(): supplied argument is not a valid stream resource in D:\w eb\~\bank.php on line 14 Direktorija eksistē. Kaut kā iepriekš ar šitamo nebij saskāries. Man ir skripts, kas līdzīgā veidā savāc bildes no kāda saita - un strādā. Tur gan failu savākšanas metode ir cita, bet nu enīvei... Tad kur varētu būt problēma? 12 rinda ir šī: fwrite($file, $cont); Link to comment Share on other sites More sharing options...
bubu Posted November 29, 2005 Report Share Posted November 29, 2005 Esi pārliecināts, ka direktorija val_krusi eksistē tekošajā (nu tb tajā, kurā atrodies, kad laid php cli) direktorijā? Link to comment Share on other sites More sharing options...
ohmygod Posted November 29, 2005 Author Report Share Posted November 29, 2005 (edited) Par visiem 100% esmu pārliecināts! Mape ir!! iemetu if(!file_exists($map)){die('NAV');} else die('IR'); uz pārlūka atgriež 'IR', no komandrindas 'NAV' Norādot pilnu ceļu - viss strādā... :/ Bet kamdēļ tā? pašķirstot vecākus kodu atradu, ka esmu no kama ndrindas izmantojis: Un takš nav pilns ceļš - laidu tāpat, kā tagad... $name='fot/new/'.$gn.'/'.$gal.'-'.$add.$nr.'.jpg'; un takš strādāju. Tur man bija vajadzīgs, lai skripts stundām var griezties... Edited November 29, 2005 by ohmygod Link to comment Share on other sites More sharing options...
bubu Posted November 29, 2005 Report Share Posted November 29, 2005 Nu tātad nav tāda ceļa. Izdari echo getcwd(); un paskaties, kur tu atrodies. Un vai tajā vietā ir tas vajadzīgais folderis. Link to comment Share on other sites More sharing options...
blackhalt Posted November 29, 2005 Report Share Posted November 29, 2005 No komandrindas jānorāda pilnie ceļi, jo,cik es sapratu, caur brouzeri tiek darbināts serveris(Apache droshvien) un tad jau darbojās servera uzstādījumi ar. Link to comment Share on other sites More sharing options...
bubu Posted November 29, 2005 Report Share Posted November 29, 2005 Nē, blackhalt, var arī relatīvos. Tikai tad vajag saprast, kur tu patreiz atrodies, lai nesamuhļītos. Link to comment Share on other sites More sharing options...
blackhalt Posted November 29, 2005 Report Share Posted November 29, 2005 bubu, vieglāk uzrakstīt pilno ceļu un miers ;) Link to comment Share on other sites More sharing options...
bubu Posted November 29, 2005 Report Share Posted November 29, 2005 Nav gan vieglāk. Ja tev tas skripts ir zem n-līmeņiem, bet vajag tajā pašā mapē esošajā folderī kautko rakstīt/lasīt. Pie tam tā ir arī portablāk - vari skriptu (ar to folderi kopā) pārlikt uz citu direktoju, nemainot ierakstīto pilno ceļu tur. Link to comment Share on other sites More sharing options...
blackhalt Posted November 29, 2005 Report Share Posted November 29, 2005 nu tad var ar izmantot šito: http://lv.php.net/manual/en/function.chdir.php Link to comment Share on other sites More sharing options...
Delfins Posted November 30, 2005 Report Share Posted November 30, 2005 1.) Imo izmantot XML ir foršāk konkrētaja situācijā ;) 2.) nesaprotu, kāpēc ir jālasa katra rindiņa, ja var izmantot fwrite( fopen($outputFile,'w'), file_get_contents($url) ) Link to comment Share on other sites More sharing options...
[Ya] Posted November 30, 2005 Report Share Posted November 30, 2005 ta juus visi kautko murgojat... ja ir n-liimenja folderi vai tad nebuutu vieglaak šitā ? $path=getcwd()."/relative/path/to/dir/or/file"; un nav jāraksta viss garais path :) Link to comment Share on other sites More sharing options...
ohmygod Posted November 30, 2005 Author Report Share Posted November 30, 2005 Yeah right! man no komandrindas getcwd() atgriež c:/PHP/, bet no browsera d:/web/~/testi/ Kas tad tur sanāks? 2 dažādi! Link to comment Share on other sites More sharing options...
Roze Posted November 30, 2005 Report Share Posted November 30, 2005 ta juus visi kautko murgojat... ja ir n-liimenja folderi vai tad nebuutu vieglaak šitā ? $path=getcwd()."/relative/path/to/dir/or/file"; un nav jāraksta viss garais path :) Nepareizi, jo current direktorija ir tā no kuras tiek palaista komanda vai arī paša executablja un tas īsti nekombinējas ar izpildāmā skripta atrašanās vietu, līdz ar to šāda kombinācija neies cauri.. pilnais PATH tomēr ir drošākais un elementārākais veids. Link to comment Share on other sites More sharing options...
Delfins Posted November 30, 2005 Report Share Posted November 30, 2005 Skriptam konfigā jābūt DATADIR, kas šajā situācijā būs DOCUMENT_DIR + '/mape/' Otrs variants, ko es arī dažreiz izmantoju, no _SELF izgriežu ceļu līdz skriptam (gadījums kad vajag panākt lai datadir zem vienas foldera-roota) $DIR = preg_replace( '|/[^/]+$|', '', $_SELF ) pielabojiet, rakstiju steigā Link to comment Share on other sites More sharing options...
KAC Posted November 30, 2005 Report Share Posted November 30, 2005 var, piemeeram, vadiities peec shitaa. (nodefineejot kaut kur saakumaa) dirname($_SERVER['SCRIPT_FILENAME']).'/' Link to comment Share on other sites More sharing options...
Recommended Posts