Posted by
admin

思路:
采集程序的思路很简单大体可以分为以下几个步骤:
1.获取远程文件源代码(file_get_contents或用fopen).
2.分析代码得到自己想要的内容(这里用正规匹配,一般是得到分页)。
3.跟根得到的内容进行下载入库等操作。
在这里第二步有可能要重复的操作好几次,比如说要先分析一下分页地址,在分析一下内页的内容才能取得我们想要的东西。
代码:
记的以前发部过部分的代码今天我在这里在简单的发部一下
复制PHP内容到剪贴板 PHP代码:
@$nl=file_get_contents($rs['url']);//抓取远程内容
preg_match_all("/var url = \"gameswf\/(.*?)\.swf\";/is",$nl,$connect);//进行正规匹配取得自己要的内容
mysql_query("insert ……插入数据库部分");
上面的代码就是所有采集要用到的代码了,当然大家也可以用fope来作,我个人喜欢用file_get_contents。
下面在共享一下我的下载图片flash到本地的办法,太简单了两行代码 复制PHP内容到剪贴板 PHP代码:
if(@copy($url,$newurl)){
echo 'ok';
}
在论坛上以前还发过一个图片下载函数这会也放上来给大家 复制PHP内容到剪贴板 PHP代码:
/*本存图片函数*/
function getimg($url,$filename){
/*判断图片的url是否为空,如果为空停止函数*/
if($url==""){
return false;
}
/*取得图片的扩展名,存入变量$ext中*/
$ext=strrchr($url,".");
/*判断是否是合法的图片文件*/
if($ext!=".gif" && $ext!=".jpg"){
return false;
}
/*读取图片*/
$img=file_get_contents($url);
/*打开指定的文件*/
$fp=@fopen($filename.$ext,"a");
/*写入图片到指点的文件*/
fwrite($fp,$img);
/*关闭文件*/
fclose($fp);
/*返回图片的新文件名*/
return $filename.$ext;
}
共享一下个人的采集心德:
1.不采那些作防盗链了的站,其实可以作假来路但是这样的站采集成本太高
2.采集尽量快的站,最好在本地进行采集
3.采集时有很多时候可以先把一部分数据存入数据库,等以后进行下一步的处理。
4.采集的时候一定要作好出错处理,我一般都是如果采集三次没有成功就跳过。以前经常就因为一条内容不能采就卡在那里一直的采。
5.入库前一定要作好判断,检查内容的合法,过滤不必要的字符串。
思路一:

思路二:

思路三:

来源:http://bbs.php100.com/read-htm-tid-30592.html
Posted by
admin

大部分语言中,引号引起来的内容都表示为字符。单引号也有同样的效果,比如在html中:
<a herf="url">url</a>
在PHP中单引号和双引号的区别是:双引号里的内容会被解释,单引号则表示为纯字符。如:
echo "字符串"; //输出:字符串
echo '字符串'; //输出:字符串
$a = 10;
echo "$a \n"; //输出:10并换行
echo '$a \n'; //输出:$a \n
Posted by
admin

<?php
$a = 7;
echo "$a = 5"; //正常显示 7 = 5
echo "$a等于5"; //显示出错
echo "$a"."等于5" //正常显示 7等于5
?>
出错的:echo "$a等于5"; 语句中php会把"$a等于5"看做一个变量,
可以修改为:echo "($a)等于5";
————–
PHP的输出函数:
- print()函数
- echo()函数
- printf()函数
- sprintf()函数
print()和echo()语句的作用相同,都是用来向客户端输出信息。但有2点不同,首先,echo()语句不能用在复杂表达式中,因为他返回的是void,而print()返回一个booblean值。其次,echo()能输出多个字符串,但print()只能同时输入一个字符串,但能用在更复杂的表达式中,如:
void echo (string $arg1 [, string $...])
echo $i,"你好"", $you", "最近怎么样?";
print $a.$b.; //print不能使用逗号,只能用点号来分隔
此外,在执行速度上,echo()更快一些。
printf()函数的格式如下:
int printf(string $format[, mixed $args [, mixed $...]])
可以看出,函数的返回值是一个整型数值,表示字符串的长度。 args表示指定的参数。
<?php
printf("%s is %d years old.","Candy",20); // 输出:Candy is 20 years old.
?>
可以使用%2$表示第二个参数,%3$表示第三个参数,但$必须转义,为\$
<?php
printf("the %1\$s says : %2\$s, %2\$s","dog","bark"); //输出:the dog says: bark,bark
?>