PHP提取8684公交数据
最近一年来一直在使用fedora,发现linux真是太适合我了,喜欢写程序,自己瞎倒腾,唉windows误我大好年华……
用PHP写了一段程序用于提取网页中的数据,相信搜索引擎也是差不多的想法,只不过他们数据多,算法好些,呵呵
[php]
<?php
/*
*此文件的目标是自动搜集存储8684上的深圳市公交数据
*
*由于http获得的网页为gbk编码PHP需要转换,只能将PHP重新编译
*/
//载入simple_html_dom类分析HTML文件
include 'simple_html_dom.php';
//创建一个SQLite数据库用于存储数据
$db = new SQLite3 ('BusData.db');
if ($db) //数据库创建成功
{
//创建站点名表
$db->exec('CREATE TABLE stationName (id INTEGER PRIMARY KEY AUTOINCREMENT,sName STRING)');
//创建线路表sName,sNote,sTo,sfrom分别存储线路名,备注,去程,回程
$db->exec('CREATE TABLE Line (sName STRING, sNote STRING, sTo STRING, sfrom STRING)');
}
analysis($db, 'http://shenzhen.8684.cn/x_24f5dad9');
$db->close ();
echo "Congratulations! Write Sucessfully!";
//******************
//分析数据,插入数据部分
//******************
function analysis($db, $url)
{
$html = new simple_html_dom ();
$html->load_file ($url); //载入HTML文件,可以从本地,也可是URL
$LName = ''; //用于记录公交线路名称
foreach ($html->find ('div[id=show] h2 a') as $lineName)
{
// echo mb_strlen($lineName->plaintext).'word<p>';本来想去掉公交名称中的‘路'字,不过后来发现整个命名不标准,要去可能去的乱七八糟了
//记录公交路线名称
$LName = $LName.mb_strcut(mb_convert_encoding($lineName->plaintext,'UTF-8','gbk'),6);
}
//记录线路备注信息:
$note = '|';
foreach ($html->find ('div[id=show] li') as $Note)
$note = $note.mb_convert_encoding($Note->plaintext,'UTF-8','gbk').'|'; //将备注连接
$i = 0; //用以判断行程(去程/回程)
$s_To = '.'; //记录去程路线
$s_from = '.'; //记录回程路线
//输出公交站点信息
foreach ($html->find ('span') as $element)
{
$i++; //控制变量自增
//i为奇数时判断为去程
if ($i % 2)
{
foreach ($element->find ('a
相关文档:
<?php
//作者:梁文平 http://www.tyasp.net
session_start();
if($_SESSION["username"]!="admin")
{
echo("<mce:script type="text/javascript"><!--
alert("操作超时!请重新登陆...");window.location.href="../index.php";
// --></mce:script>");
//header("refresh:0;url=../"); ......
PHP中有下列称之为魔术方法(magic method)的函数:__construct, __destruct ,
__call, __callStatic,__get, __set, __isset, __unset , __sleep, __wakeup,
__toString, __set_state, __clone and __autoload,本文使用__call为实现一个身份验证的简单实例,代码如下: 代码<?php
interfa ......
1、过滤标签(HTML):strip_tags()
例如:
<?php
$text = '<?php ?><p>Test paragraph.</p><!-- Comment -
-> <a href=http://topic.csdn.net/u/20090311/09/"#fragment">Other text</a>';
echo strip_tags($text);
echo "\n";
// 允许使用<p>和<a>
echo stri ......
<?php
// 将数组转换成Json格式,中文需要进行URL编码处理
function Array2Json($array) {
arrayRecursive($array, 'urlencode', true);
$json = json_encode($array);
$json = urldecode($json);
// ext需要不带引号的bool类型
&n ......
GD库是PHP进行图象操作一个很强大的库。
先在php.ini里增加一行引用:extension=php_gd2.dll
重启apache。做一个测试页 var_dump(gd_info());输出数据表明GD库引用成功。
表单auth.html
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
< ......