登录  | 立即注册

游客您好!登录后享受更多精彩

查看: 890|回复: 0

[PHP教程] 【PHP教程】百度历史上的今天api源码

[复制链接]

444

主题

509

帖子

2051

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2051

荣誉管理论坛元老

发表于 2021-6-20 22:07:21 来自手机 | 显示全部楼层 |阅读模式 来自:
  1. <?php4 O0 M2 h( y  S6 s7 ~% M
  2. $xiaoxin1="./xiaoxin/ls.txt";
    3 U: T7 H  K' ]; ?. N0 r% T" n
  3. $xiaoxin2=fopen($xiaoxin1,"a");+ ^  c( G+ m7 s, w' n! D
  4. $xiaoxin3=file_get_contents($xiaoxin1);
    ) T0 X% s- L, @' `1 c
  5. $xiaoxin5=$xiaoxin3;
    2 U# E6 @0 L5 Q8 p- o3 U; n9 z
  6. unlink($xiaoxin1);
    3 R  H8 T3 H, N: `
  7. $xiaoxin5=$xiaoxin5+1;
    $ A2 L) A4 }4 B/ O5 e# A
  8. $xiaoxin2=fopen($xiaoxin1,"a");+ e1 a/ }# B% @7 B
  9. fwrite($xiaoxin2,$xiaoxin5);$ K( D7 m" d- Z. @  v- Q' r
  10. //允许跨域& r! Z: P8 |# |: |7 V* F
  11. header("Access-Control-Allow-Origin:*");
    1 P0 Q: x& k8 y0 h
  12. 8 @3 `  }6 i/ u8 {- F
  13. $month=date( 'm',time() );2 F: c# |1 q% `, G5 ]" F
  14. $day=date( 'd',time() );# [  S, e# F4 ]# S' a4 `& N
  15. //当前年月日
    6 s$ f4 x' a+ G& f
  16. $today = date('Y年m月d日');
    ; r, M; N3 E8 {3 b' Q! [* C
  17. //获取接口数据- M3 p  v4 z9 [& V" V2 m2 a2 [
  18. $url="https://baike.baidu.com/cms/home/eventsOnHistory/".$month.'.json'; 3 l: G+ f: B6 p1 i% U
  19. $data = httpGet($url);
    ) X) M! I8 z+ j& R; E6 @2 x5 [9 p
  20. $json = json_decode($data,true);
    : E0 I; \( b( B" h
  21. //统计当日总数) _4 x5 K) j  P9 E) |& B
  22. $countnum = count($json[$month][$month.$day])-1;
    # o9 h( K/ i& y8 V6 A
  23. //获取输出数量(可以get调整)) R9 ^% [* ^. m
  24. $num = $_GET['num'] ? $_GET['num'] : $countnum;
    % E( h) j6 q. a0 L
  25. $arr = array('code'=>'200','day'=>$today);
    ) N' H8 X4 ~$ H. m( O% \
  26. for ($x=0; $x<=$num; $x++) {( v  c( f- x3 y$ s* k
  27.   $arr['content'][$x].= match_chinese(strip_tags($json[$month][$month.$day][$x]['title']));0 r0 s6 y' G* R/ Y* X: Z4 h
  28. }
    5 L; d) G+ V7 i1 t: N, G
  29. //创建随机数
    4 [3 u& `  q9 J, M# d
  30. $rand = rand(0,$countnum);
    / T3 {" i. P# h
  31. //下面是输出类型
    ; j  i9 g& ^0 ]* t
  32. if($_GET['format']=='json'){8 B6 l* F' `& H$ \) ]
  33.   //输出当日所有 类型为json/ G7 U4 V% f8 k* @4 Y3 [* @# n
  34.   header('Content-type: application/json');6 ]2 j; g8 X' L& i* P/ Q; K
  35.   echo json_encode($arr,JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
    5 e: w$ v8 ?1 E* N1 j& M* \0 m" G
  36. }elseif($_GET['format']=='js'){
    : J, Q* x$ X' \6 |
  37.   //以js类型输出一条  ?, I& W" g: @; ^* C# z' g, ?, v
  38.   header('Content-type: text/javascript;charset=utf-8');
    + B! G4 D1 V5 c( l
  39.   echo 'function briefing(){document.write("'.$arr['content'][$rand].'");}';. h! ~4 v/ o- z, \5 o# v" W( }
  40. }else{  m. Q. p5 B6 b) I- k
  41.   //以html类型输出一条2 U; [, `/ J& ~+ ^$ P
  42.   header('Content-type: application/json');
    3 c- g' b. O( K  a! n+ k  T2 `1 s
  43. $json=json_encode($arr,JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
    : d4 T% C7 _$ J, ~$ ^# m& _
  44. $json=json_decode($json,true);
    5 E( T2 A; m5 G. m, _, e
  45. $ls0=$json[content][0];
    : D* X4 I6 e2 g' v$ W0 A  Y
  46. $ls1=$json[content][1];
    7 J" v; Z- @: E- I) |2 T
  47. $ls2=$json[content][2];5 o2 `: k9 J" S, m  F$ d
  48. $ls3=$json[content][3];2 G# _7 J8 ]# A
  49. $ls4=$json[content][4];
    ! ?7 c+ F! w! T  R1 V* b- J2 ^
  50. $ls5=$json[content][5];6 i# W' P0 }& `
  51. $ls6=$json[content][6];
    ! y6 F/ Q# \/ E7 L, k
  52. $ls7=$json[content][7];
    % l; A! w! O$ i5 \- Q* C  n
  53. $ls8=$json[content][8];
    ; H& q* y4 V- F& d$ C0 r* p
  54. $ls9=$json[content][9];
    9 g' A9 I, \1 B7 P2 C* A
  55. $ls10=$json[content][10];
    $ ~7 n9 \' u! u% i6 i' G8 |/ H
  56. $ls11=$json[content][11];/ i( h4 ]% B# l4 R3 o5 W* l
  57. $ls12=$json[content][12];
    " W1 }. l3 T! T8 Y% ~) w1 O* S2 R
  58. $ls13=$json[content][13];9 D+ g" W/ _+ Z8 _
  59. $ls14=$json[content][14];" c9 ^2 }! |$ ^( N
  60. $zh="$ls0\r$ls1\r$ls2\r$ls3\r$ls4\r$ls5\r$ls6\r$ls7\r$ls8\r$ls9\r$ls10\r$ls11\r$ls12\r$ls13\r$ls14";
    ! G) x/ n2 R2 y" M/ R$ @, N
  61. echo $zh;+ z) L) v3 d  G
  62. }
      q: [3 m; _- e  `! H8 T! `) Q

  63. ) x7 }+ C. k: ^# [$ m: R0 g' i
  64. , X2 q5 z- R, m
  65. //下面是需要用到的封装: C% t( {$ i0 @9 I; g0 Q: U. I% J6 X

  66. . n( g: J; T. K3 h5 B6 s+ j
  67. function httpGet($a, $b = '', $c = '', $d = ''){
    " k0 P. p/ S! m4 u2 l
  68. //curl模拟get请求2 g+ ], V0 x, C1 Q, O0 I0 y
  69.   $e = curl_init();
    7 B& V0 G( H) D" F
  70.   $f = mt_rand(11, 191) . "." . mt_rand(0, 240) . "." . mt_rand(1, 240) . "." . mt_rand(1, 240);+ x( H/ i- p+ o% E' o
  71.   $i[] = "CLIENT-IP:" . $f;
    / M, G0 Y0 l0 D
  72.   $i[] = "X-FORWARDED-FOR:" . $f;) R# [$ D  ?( A' g- z
  73.   $i[] = "User-agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11";" o) ]! N6 {+ o9 v' y  B6 v0 [
  74.   $i[] = "X-Requested-With: XMLHttpRequest";  q1 [2 o# `4 l& s6 Y: h* R' ]
  75.   if (!empty($d)) {
    5 G" y% u8 ]( _9 |9 L- l
  76.     $i[] = "Cookie: " . $d;4 T4 z! q3 I' F( o/ Q' {4 j
  77.   }
      t& ~0 J. k- o" B
  78.   curl_setopt($e, CURLOPT_HTTPHEADER, $i);- \% ?' s+ b: C- T3 @
  79.   curl_setopt($e, CURLOPT_RETURNTRANSFER, true);; J; |7 |5 ]6 x' i7 f
  80.   curl_setopt($e, CURLOPT_TIMEOUT, 180);
    ) m" A: j3 G# v* V( H8 h# k' {
  81.   curl_setopt($e, CURLOPT_SSL_VERIFYPEER, false);: j; Z2 n4 k/ C6 \
  82.   curl_setopt($e, CURLOPT_SSL_VERIFYHOST, false);- o/ n9 z2 p! _: \& d
  83.   if (!empty($c)) {0 ]8 ~# B5 x" I. R, [, c7 c
  84.     curl_setopt($e, CURLOPT_REFERER, $c);
    / W* R+ q4 V- m$ T: t1 ]
  85.   }( ^0 l3 i* j0 P7 f' {# C( c
  86.   if (!empty($b)) {4 C# S7 U/ e3 q3 F- @8 T+ Z8 a# ^/ S. W9 n# D
  87.     curl_setopt($e, CURLOPT_POST, 1);" A$ _0 l  J' F( n, W: L2 i& D
  88.     curl_setopt($e, CURLOPT_POSTFIELDS, $b);
    : e6 V$ c2 F( S& m# n. k
  89.   }) E- H0 t: c9 F- z
  90.   curl_setopt($e, CURLOPT_URL, $a);7 X% y9 O. o. m6 j
  91.   curl_setopt($e, CURLOPT_ENCODING, "gzip");6 O" _0 h3 Y0 Z/ z# h9 n! S* Y
  92.   $j = curl_exec($e);9 v4 y( K+ o; Y1 K; V$ g5 d
  93.   curl_close($e);( e+ U! M" }6 [' ?
  94.   return $j;$ Y& z: b1 a& H1 a1 \& ]
  95. }
    ) V2 ^, e& W, m- u2 v& ?! b" i! A* S
  96. function match_chinese($chars,$encoding='utf8')) M- x& ^9 p3 c, [! I; B! w
  97. {8 j" p5 w( ^* K6 J
  98. //清除正则4 t* }; f6 G5 U1 |
  99.   $pattern =($encoding=='utf8')?'/[\x{4e00}-\x{9fa5}a-zA-Z0-9]/u':'/[\x80-\xFF]/';
    % a# D5 N! n3 _. p/ m! {
  100.   preg_match_all($pattern,$chars,$result);4 ^+ @% Q; ^" H# f8 ?- c# b7 Q! z
  101.   $temp =join('',$result[0]);
    / R+ V/ g8 M. v( Y5 ^8 B! x' q
  102.   return $temp;- u4 X% i. T' V" f  X9 d
  103. }
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|星空社区 |网站地图

GMT+8, 2024-4-29 18:59 , Processed in 0.053486 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表