当前位置:  编程技术>php
本页文章导读:
    ▪php ob_start()缓存函数的用法详解      在php中,ob_start()函数用于打开缓冲区,比如header()函数之前如果就有输出,包括回车/空格/换行/都会有"Header had all ready send by"的错误。 此时可以先用ob_start()打开缓冲区PHP代码的数据块和echo().........
    ▪php str_replace替换函数的用法      字符串替换函数 str_replace() 函数原型:mixed str_replace(mixed needle,mixed new_needle,mixed haystack[,int &count]); needle:要被替换的字符串,new_needle:替换用的字符串,haystack:操作字符串,count:替换.........
    ▪PHP 获取远程网页内容的代码      分享几段获取远程网页内容的php代码。 1、fopen方式 <?php $handle = fopen ("http://www./", "rb"); $contents = ""; while (!feof($handle)) { $contents .= fread($handle, 8192); } fclose($handle); echo $contents; //输.........

[1]php ob_start()缓存函数的用法详解
    来源: 互联网  发布时间: 2013-12-24

在php中,ob_start()函数用于打开缓冲区,比如header()函数之前如果就有输出,包括回车/空格/换行/都会有"Header had all ready send by"的错误。

此时可以先用ob_start()打开缓冲区PHP代码的数据块和echo()输出都会进入缓冲区而不会立刻输出。

对于php中打开缓冲区的方法,总结为四种:
1,用于header()之前

<?php
ob_start(); //打开缓冲区 
echo /"Hellon/"; //输出 
header("location:index.php"); //把浏览器重定向到index.php 
ob_end_flush();//输出全部内容到浏览器 
?>

2,phpinfo()函数可获取客户端和服务器端的信息,保存客户端信息用缓冲区。

<?php
ob_start(); //打开缓冲区 
phpinfo(); //使用phpinfo函数 
$info=ob_get_contents(); //得到缓冲区的内容并且赋值给$info 
$file=fopen(/'info.txt/',/'w/'); //打开文件info.txt 
fwrite($file,$info); //写入信息到info.txt 
fclose($file); //关闭文件info.txt 
?>

3,静态页面技术

<?php
ob_start();//打开缓冲区 
 
//php页面的全部输出 
$content = ob_get_contents();//取得php页面输出的全部内容 
$fp = fopen("output00001.html", "w"); //创建一个文件,并打开,准备写入 
fwrite($fp, $content); //把php页面的内容全部写入output00001.html,然后…… 
fclose($fp); 
?> 

4,输出代码

<?php
Function run_code($code) { 
If($code) { 
   ob_start(); 
   eval($code); 
   $contents = ob_get_contents(); 
   ob_end_clean(); 
}else { 
   echo "错误!没有输出"; 
   exit(); 
} 
   return $contents; 
}

    
[2]php str_replace替换函数的用法
    来源: 互联网  发布时间: 2013-12-24

字符串替换函数 str_replace()
函数原型:mixed str_replace(mixed needle,mixed new_needle,mixed haystack[,int &count]);
needle:要被替换的字符串,new_needle:替换用的字符串,haystack:操作字符串,count:替换次数【可选参数】

在都不使用数组时,该函数直接使用new_needle替换所有的needle并返回替换后的字符串。
例如:

代码示例:
str_replace("m","n","my name is jim!")

返回:ny nane is jin!

1、只对needle使用数组。
例子:

代码示例:
str_replace(array('m','i'),'n',"my name is jim!");

返回:ny nane ns jnn!
函数顺序性的对数组中每个字符串进行替换,并返回替换后的字符串。

2、只对new_needle使用数组。
例子:

代码示例:
str_replace('m',array('n','z'),"my name is jim!/n")

返回:Arrayy naArraye is jiArray!
如果只对第二个参数使用数组则函数将其作为字符串Array进行使用,将所有的needle替换为了数组。

3、只对haystack使用数组。
例子:

代码示例:
str_replace("m","n",array("my name is jim!","the game is over!"))

该语句执行结果返回一个数组,即分别为传入的两个字符串替换后的结果。
如果输出数组内容会看到:ny nane is jin! the gane is over!

4、对needle和new_needle都使用数组。
例子:

代码示例:
str_replace(array("m","i"),array("n","z"),"my name is jim!")

返回:ny nane zs jzn!
如果前两个参数都使用数组则函数把数组各个对象项字符串进行了替换,及needle的第一项替换为new_needle的第一项。以此类推。
如果needle数组比new_deedle长,例如:

代码示例:
str_replace(array("m","i","s"),array("n","z"),"my name is jim!");

返回:ny nane z jzn!可见,对于needle数组多出来的字符串被替换为了空串。

如果new_needle数组比needle长,例如:

代码示例:
str_replace(array("m","i"),array("n","z","x"),"my name is jim!")

返回:ny nane zs jzn!可见new_needle多余的项被忽略。

5、三个参数都使用数组。
例如:

代码示例:
str_replace(array("m","i"),array("n","z"),array("my name is jim!","the game is over"))

返回的数组内容:ny nane zs jzn!the gane zs over
以上对两个字符串分别执行替换。


    
[3]PHP 获取远程网页内容的代码
    来源: 互联网  发布时间: 2013-12-24

分享几段获取远程网页内容的php代码。
1、fopen方式

<?php 
$handle = fopen ("http://www./", "rb"); 
$contents = ""; 
while (!feof($handle)) { 
$contents .= fread($handle, 8192); 
} 
fclose($handle); 
echo $contents; //输出获取到得内容。 

//以下适用于php5以上版本 
$handle = fopen("http://www.", "rb"); 
$contents = stream_get_contents($handle); 
fclose($handle); 
echo $contents; 
?>

如果出现:failed to open stream: HTTP request failed!错误。

解决方法:
在php.ini中,有这样两个选项:allow_url_fopen =on(表示可以通过url打开远程文件),user_agent="PHP"(表示通过哪种脚本访问网络,默认前面有个 " ; " 去掉即可。)重启服务器。
如下图:

完美解决:
设置php.ini里面的user_agent,php默认的user_agent是PHP,我们把它改成Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)来模拟浏览器即可。
user_agent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"

2、curl方式

<?php 
$url = "http://www."; 
$ch = curl_init(); 
curl_setopt ($ch, CURLOPT_URL, $url); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT,10); 
$dxycontent = curl_exec($ch); 
echo $dxycontent; 
?> 

备注:linux下可以使用下面的代码下载
exec("wget {$url}");

PHP抓取外部资源函数fopen、file_get_contents、curl 的区别:
1,fopen / file_get_contents 每次请求都会重新做DNS查询,并不对DNS信息进行缓存。
2,CURL会自动对DNS信息进行缓存。对同一域名下的网页或者图片的请求只需要一次DNS查询。
这大大减少了DNS查询的次数。
因此,CURL的性能比fopen、file_get_contents要好,建议使用。


    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3