dict_maker.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. require dirname(__FILE__) . '/vendor/autoload.php';
  3. require dirname(__FILE__) . '/config.php';
  4. require dirname(__FILE__) . '/console.php';
  5. $dir = dirname(__FILE__) . '/storage/dict';
  6. if(!is_dir($dir)){
  7. $res = mkdir($dir,0700,true);
  8. if(!$res){
  9. echo "error: mkdir fail path=".$dir;
  10. return 0;
  11. }
  12. }
  13. //删除目录下所有文件
  14. console('debug','delete all of file');
  15. $files = scandir($dir);
  16. foreach ($files as $key => $file) {
  17. if(is_file($dir.'/'.$file)){
  18. unlink($dir.'/'.$file);
  19. }
  20. }
  21. $stopFile = $dir.'/.stop';
  22. $stop = file_put_contents ($stopFile,'stop');
  23. if($stop === false){
  24. console('error',"create stop file fail ");
  25. return 0;
  26. }
  27. $filename = $dir.'/pali-'.date("Y-m-d-h-i-sa").'.syn';
  28. $fp = fopen($filename,'a');
  29. if(!$fp){
  30. console('error',"open file fail filename=".$filename);
  31. return 0;
  32. }
  33. $client = new GuzzleHttp\Client();
  34. $currPage = 1;
  35. $urlBase = Config['api_server'] . '/v2/pg-pali-dict-download';
  36. console('debug','url='.$urlBase);
  37. do {
  38. $goNext = false;
  39. $url = $urlBase . "?page={$currPage}";
  40. console('debug','url='.$url);
  41. $res = $client->request('GET', $url);
  42. $status = $res->getStatusCode();
  43. if($status === 200){
  44. $json = json_decode($res->getBody());
  45. if($json->ok){
  46. $content = $json->data;
  47. console('debug','data size='.strlen($content));
  48. fwrite($fp,$content."\n");
  49. console('debug','write to file success');
  50. $goNext = true;
  51. }else{
  52. console('debug', 'all done');
  53. }
  54. }else{
  55. console('error', 'status='.$status);
  56. }
  57. $currPage++;
  58. sleep(1);
  59. } while ($goNext);
  60. fclose($fp);
  61. console('debug','all done filename='.$filename) ;
  62. unlink($stopFile);