php100学习记录89-91

89讲,使用PHP DOM组件获取xml内容

<?php
$doc = new DOMDocument(); //实例化DOMDocument
$doc->load('book.xml');//载入book.xml
//$title= $doc->getElementsByTagName("book"); //获取内容
//echo $title->item(0)->nodeValue;  //打印内容
 
$book=$doc->getElementsByTagName("book");
foreach($book as $note){ //$book此时为二维数组
	echo $note->nodeValue."";
}
?>

book.xml

<?xml version="1.0" encoding="utf-8"?>
<php100>
<book>
 
   <author> 作者 </author>
</book>
<book>
 
   <author> 作者123 </author>
</book>
</php100>

90讲 使用PHP DOM组件创建xml内容

<?php
$doc = new DOMDocument('1.0', 'utf-8');  // 声明版本和编码
$doc -> formatOutput = true;  //格式XML输出
 
$root	= $doc -> createElement('root');	//创建一个标签
$index	= $doc -> createElement('index');	//创建一个标签
$conarea	= $doc -> createElement('conarea');	//创建一个标签
$id	    = $doc -> createAttribute('id');    //创建一个属性
 
$newsid = $doc -> createTextNode("1");		            //设置属性内容
$newstitle = $doc -> createTextNode("this is title");   //设置标签内容
$newsco = $doc -> createTextNode("this is content");   //设置标签内容
 
$id		-> appendChild($newsid);	//继承属性
$index	-> appendChild($id);	    //继承属性内容
$index	-> appendChild($newstitle);	//继承标签内容
$conarea-> appendChild($newsco);	//继承标签内容
 
$root	-> appendChild($index);		//继承子类
$root	-> appendChild($conarea);		//继承子类
$doc	-> appendChild($root);
$doc	-> save("php100.xml");      // 生成保存为XML
 
?>

91讲 使用PHP DOM组件修改、删除xml里的内容
index.php

<?php
/*===========修改xml中的值
$doc=new DOMDocument();
$doc->load("php100.xml");
$book= $doc->getElementsByTagName("php100");
 
foreach($book as $val){
	if($val->getAttribute("id")==3){
	echo $val->getAttribute("id");
	echo $val->getElementsByTagName("index")->item(0)->nodeValue="3333";
	echo "";
	}
	}
 
$doc->save("php100.xml");	*/
 
//===========删除xml中的值
$doc=new DOMDocument();
$doc->load("php100.xml");
 
$root=$doc->documentElement;
$book= $doc->getElementsByTagName("php100");
 
foreach($book as $val){
	if($val->getAttribute("id")==3){
	echo $val->getAttribute("id");
	echo $val->getElementsByTagName("index")->item(0)->nodeValue="3333";
	echo "";
	}
	if($val->getAttribute("id")==1){
		$root->removeChild($val);
	}
 
	}
 
$doc->save("php100.xml");
?>

php100.xml

<?xml version="1.0" encoding="utf-8"?>
<root>
<php100 id="1"><index>this is title1</index></php100>
<php100 id="2"><index>this is title2</index></php100>
<php100 id="3"><index>this is title3</index></php100>
<php100 id="4"><index>this is title4</index></php100>
</root>

php100学习记录87-88

87讲
curl是一个利用URL语法在命令行方式下工作的文件传输工具。其功能如下:
  1、实现远程获取和采集内容
   2、实现PHP 网页版的FTP上传下载
   3、实现模拟登陆
   4、实现接口对接(API),数据传输等
   5、实现模拟Cookie等

介绍了CURL的使用方法,首先要开启php_curl.dll扩展
下面是87讲的代码,下载
index.php

<?php
 
//$curl=curl_init(); //初始化一个CURL对象
//
//curl_setopt($curl, CURLOPT_URL, "http://www.baidu.com");
////设置需要抓取的URL
//
//curl_setopt($curl,CURLOPT_RETURNTRANSFER,0);
////设置参数,1为保存成字符串,0为输出到页面
//
//$data=curl_exec($curl);// 执行curl,请求网页
//
//curl_close($curl);//关闭URL请求
 
$user = "admin";
$pass = "admin100";
$curlPost = "user=$user&pass=$pass";//以类似get形式的提交,写出POST提交的内容
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://localhost/87/login.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_POST, 1);//设置什么方式提交
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);//POST提交的内容是什么,指向$curlPost
$data = curl_exec($ch); 
curl_close($ch);
 
?>

login.php

<?php
 
if($_POST[user]){
	echo $_POST[user]."<br>";
	echo $_POST[pass];
}else{
	echo "false";
}
?>

88讲
介绍了远程模拟登录的功能
第一步,分析登录需要的字段名
第二步,利用curl进行post提交,保存cookie值在本地
第三步,读取cookie值,访问远程页面

最后:PHP中的CURL函数库 http://www.php100.com/html/webkaifa/PHP/PHP/2010/0620/4789.html
代码如下,下载
index.php

<?php
$cookie_file = tempnam('./temp', 'cookie');//参数:文件夹目录、前缀
$curlPost    = "lgt=0&step=2&pwuser=php100_88&pwpwd=111111&hideid=1&cktime=3600";
//以类似get形式的提交,写出POST提交的内容,帐号密码改成自己的
$ch          = curl_init("http://bbs.php100.com/login.php");
 
curl_setopt($ch, CURLOPT_HEADER,0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);//设置什么方式提交
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);//POST提交的内容是什么,指向$curlPost
curl_setopt($ch, CURLOPT_COOKIEJAR,$cookie_file);//保存cookie到文件夹
curl_exec($ch); 
curl_close($ch);
 
//=======================
$ch          = curl_init("http://bbs.php100.com/userpay.php");
//$ch          = curl_init("http://bbs.php100.com/thread-htm-fid-2.html");
curl_setopt($ch, CURLOPT_HEADER,0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);//设置什么方式提交
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);//POST提交的内容是什么,指向$curlPost
curl_setopt($ch, CURLOPT_COOKIEFILE,$cookie_file);//获取COOKIE
$data = curl_exec($ch);
 
echo $data;
$pattern="/<title>(.*)<\/title>/";//正则替换,打印出标题
preg_match($pattern, $data,$arr);
print_r($arr);
 
curl_close($ch);
//PHP中的CURL函数库 http://www.php100.com/html/webkaifa/PHP/PHP/2010/0620/4789.html
?>

php100学习记录85-86

85、86讲主要是图表类 JPGraph 的简单应用,配置这一块不是太难对照着视频做即可,有两点要说明一下

一、显示中文的时候,PHP文件必须是gbk编码模式
如果不是gbk编码模式,我在网上也搜了几篇文章,不用gbk编码模式的解决方法链接地址

二、设置背景图片,我本地测试怎么也不能成功,不知道为什么?

三、教程相对涉及到的内容较少,想研究更透彻可以谷歌一下 php jpgraph教程

85、86讲代码下载

<?php 
 
require_once ('jpgraph/jpgraph.php'); // 载入基本类
require_once ('jpgraph/jpgraph_pie.php');  // 载入饼图类
 
$data = array(50,21,33,12,33); // 初始数据
 
$graph = new PieGraph(300,300); // 创建一个新图和尺寸
$graph->SetShadow(); // 创建初始化
 
$graph->title->Set("中文"); // 设置图片头部文字 必须将该php文件设置为gbk编码才能显示中文
$graph->title->SetFont(FF_SIMSUN,FS_BOLD,55); //设置字体类型
 
//============
//$graph->title->SetFont(FF_FONT1,FS_BOLD);  //英文字体
//
//$graph->title->SetColor('red'); //设置字体颜色
//
//$graph->title->SetFont(FF_SIMSUN,FS_BOLD,24); // 设置标题中文字体 ,类型,大小
//$graph->legend->SetFont(FF_SIMSUN,FS_BOLD); //设置线条指示字体
//$graph->yaxis->title->SetFont(FF_SIMSUN,FS_BOLD);//设置Y轴线条指示字体
//$graph->xaxis->title->SetFont(FF_SIMSUN,FS_BOLD);//设置X轴线条指示字体
 
//============
//$graph->SetColor('red'); //设置背景颜色
//$graph->SetBackgroundImage("tr5.jpg",BGIMG_FILLFRAME);
//设置图形的背景图片,填充方式有:BGIMG_FILLPLOT, BGIMG_FILLFRAME, BGIMG_COPY
//$graph->img->SetMargin(0,0,0,0); // 空余四角边距(左右上下)
$graph->SetBackgroundImage("20060604132453351.jpg",BGIMG_FILLPLOT);  
 
$graph->img->SetAngle(45); //设置图形在图像中的角度  
 
//============
//$graph->Set3DPerspective(SKEW3D_LEFT,700,600,true); 
 
//倾斜3D效果
//   1. 'SKEW3D_UP'
//   2. 'SKEW3D_DOWN'
//   3. 'SKEW3D_LEFT'
//   4. 'SKEW3D_RIGHT' 
 
$p1 = new PiePlot($data); // 实例化饼图并载入初始数据
$p1->SetTheme("sand"); //设置样式
$p1->SetCenter(0.5,0.55); //设置饼图位置
$p1->value->Show(true);  // 是否输出值
$graph->Add($p1); // 增加合并样式
$graph->Stroke(); //输出
 
?>

php100学习记录82-84

82到84讲都是在讲如何开发PHP开发通用采集入库程序,这三步教程都一步一步循序渐进的,所以希望能够一个一个看,不要一下看完,却不知道讲的什么。

82讲
要实现的功能
list.php匹配一个列表页,使用foreach循环输出标题和URL
view.php匹配一个内容页,输出标题和内容
代码下载

83讲
要实现的功能
list.php匹配多个列表页,采集列表是要自动翻页,然后把标题和URL插入数据库
view.php先从数据库查询出5篇文章的url,再进行采集,输出5篇文章的标题、内容
代码下载

84讲
要实现的功能
list.php匹配多个列表页,采集列表是要自动翻页,然后把标题和URL插入数据库
view.php先从数据库查询出文章的url,再进行采集,再把文章的标题、内容添加到数据库(内容中有特殊符号,需要使用addslashes函数),要获取下一个要采集文章的ID、自动跳转到下一个采集页面
代码下载