通过PHP生成PHP

背景介绍

百度收录的页面比较慢,最近新的三方流以及方案页面发布出来,想着每天多一点抓取。现在整体的方案是:

  1. 页面有点击的时候, js 自动推送
  2. 通过更新 sitemap.xml 自动让蜘蛛来抓取
  3. 通过脚本主动推送新页面到引擎

今天主要是上述的第三点,主动推送新页面到百度引擎中去。尝试的方法是通过 php 代码生成 php 代码。

注意事项

  1. EOF 的结尾空格问题
  2. EOF 中的 $ 符号要转义
  3. 纯属手痒尝试,模仿请自行负责

代码留存备份

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?php
include('head.php');
$sql = "select * from flow where published='y'";

$f_values = '';
$f_values .=<<<EOF
<?php
\$urls = [
EOF;
$flows = get_table_data($sql,$mysqli_space);
if(false == empty($flows))
{
foreach($flows as $flow)
{
$f_values.=<<<EOF
'https://www.12306.com/flow-{$flow['d_id']}.html',
EOF;
$f_values.=PHP_EOL;
}
}
//案例详情
$sql_bcase = "select * from beautycase where published='y'";

$cases = get_table_data($sql_bcase,$mysqli_space);
if(false == empty($cases))
{
foreach($cases as $case)
{
$f_values.=<<<EOF
'https://www.12306.com/beautycase-{$case['d_id']}.html',
EOF;
$f_values.=PHP_EOL;
}
}


$f_values.=<<<EOF
];
\$api = 'http://data.zz.baidu.com/urls?site=www.12306.com&token=abcdefg';
\$ch = curl_init();
\$options = array(
CURLOPT_URL => \$api,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => implode("\n", \$urls),
CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
);
curl_setopt_array(\$ch, \$options);
\$result = curl_exec(\$ch);
echo \$result;
EOF;
file_put_contents('/www/wwwroot/TransDataToPub/putUrls.php',$f_values);