当前位置:  编程技术>php
本页文章导读:
    ▪php切割页面div内容的实现代码分享       亮点: 1、利用php也能实现对页面div的切割处理。这里的做法抛砖引玉,希望读者能够提供更加完美的解决方案。 2、切割处理方法已经封装成一个方法,可以直接引用。 3、顺便加上标签云.........
    ▪php中数组首字符过滤功能代码       代码如下: <?php $array = array( 'abcd', 'abcde', 'bcde', 'cdef', 'defg', 'defgh' ); $str = '~'.implode('~',$array).'~'; $word = $_GET['word']; //url = xxx.php?word=a preg_match_all("/~({$word}(?:[^~]*))/i",$str,$matches); var_dump($matches[1].........
    ▪PHP常用开发函数解析之数组篇[未完结]       一、数组处理函数: 醉感觉:数组处理函数在PHP开发中非常常见,学习好数组处理函数至关重要.数组处理函数在实际应用中涉及到:数组的创建,字符串于数组的相互转换,数组转XML,数组转JSON.数.........

[1]php切割页面div内容的实现代码分享
    来源: 互联网  发布时间: 2013-11-30
亮点:
1、利用php也能实现对页面div的切割处理。这里的做法抛砖引玉,希望读者能够提供更加完美的解决方案。
2、切割处理方法已经封装成一个方法,可以直接引用。
3、顺便加上标签云的截取。//getWebDiv('id="taglist"','http://www./tag/');
代码如下:

<?php
header("Content-type: text/html; charset=utf-8");
function getWebDiv($div_id,$url=false,$data=false){
if($url !== false){
$data = file_get_contents( $url );
}
$charset_pos = stripos($data,'charset');
if($charset_pos) {
if(stripos($data,'utf-8',$charset_pos)) {
$data = iconv('utf-8','utf-8',$data);
}else if(stripos($data,'gb2312',$charset_pos)) {
$data = iconv('gb2312','utf-8',$data);
}else if(stripos($data,'gbk',$charset_pos)) {
$data = iconv('gbk','utf-8',$data);
}
}
preg_match_all('/<div/i',$data,$pre_matches,PREG_OFFSET_CAPTURE); //获取所有div前缀
preg_match_all('/<\/div/i',$data,$suf_matches,PREG_OFFSET_CAPTURE); //获取所有div后缀
$hit = strpos($data,$div_id);
if($hit == -1) return false; //未命中
$divs = array(); //合并所有div
foreach($pre_matches[0] as $index=>$pre_div){
$divs[(int)$pre_div[1]] = 'p';
$divs[(int)$suf_matches[0][$index][1]] = 's';
}
//对div进行排序
$sort = array_keys($divs);
asort($sort);
$count = count($pre_matches[0]);
foreach($pre_matches[0] as $index=>$pre_div){
//<div $hit <div+1 时div被命中
if(($pre_matches[0][$index][1] < $hit) && ($hit < $pre_matches[0][$index+1][1])){
$deeper = 0;
//弹出被命中div前的div
while(array_shift($sort) != $pre_matches[0][$index][1] && ($count--)) continue;
//对剩余div进行匹配,若下一个为前缀,则向下一层,$deeper加1,
//否则后退一层,$deeper减1,$deeper为0则命中匹配,计算div长度
foreach($sort as $key){
if($divs[$key] == 'p') $deeper++;
else if($deeper == 0) {
$length = $key-$pre_matches[0][$index][1];
break;
}else {
$deeper--;
}
}
$hitDivString = substr($data,$pre_matches[0][$index][1],$length).'</div>';
break;
}
}
return $hitDivString;
}
echo getWebDiv('id="taglist"','http://www./tag/');
//End_php

考虑到id符号问题,id="u"由用户自己填写。
声明:此段php只针对带 id div内容的读取。
完善:匹配任意可闭合带id标签
代码如下:

View Code
<?php
header("Content-type: text/html; charset=utf-8");
function getWebTag($tag_id,$url=false,$tag='div',$data=false){
if($url !== false){
$data = file_get_contents( $url );
}
$charset_pos = stripos($data,'charset');
if($charset_pos) {
if(stripos($data,'utf-8',$charset_pos)) {
$data = iconv('utf-8','utf-8',$data);
}else if(stripos($data,'gb2312',$charset_pos)) {
$data = iconv('gb2312','utf-8',$data);
}else if(stripos($data,'gbk',$charset_pos)) {
$data = iconv('gbk','utf-8',$data);
}
}
preg_match_all('/<'.$tag.'/i',$data,$pre_matches,PREG_OFFSET_CAPTURE); //获取所有div前缀
preg_match_all('/<\/'.$tag.'/i',$data,$suf_matches,PREG_OFFSET_CAPTURE); //获取所有div后缀
$hit = strpos($data,$tag_id);
if($hit == -1) return false; //未命中
$divs = array(); //合并所有div
foreach($pre_matches[0] as $index=>$pre_div){
$divs[(int)$pre_div[1]] = 'p';
$divs[(int)$suf_matches[0][$index][1]] = 's';
}
//对div进行排序
$sort = array_keys($divs);
asort($sort);
$count = count($pre_matches[0]);
foreach($pre_matches[0] as $index=>$pre_div){
//<div $hit <div+1 时div被命中
if(($pre_matches[0][$index][1] < $hit) && ($hit < $pre_matches[0][$index+1][1])){
$deeper = 0;
//弹出被命中div前的div
while(array_shift($sort) != $pre_matches[0][$index][1] && ($count--)) continue;
//对剩余div进行匹配,若下一个为前缀,则向下一层,$deeper加1,
//否则后退一层,$deeper减1,$deeper为0则命中匹配,计算div长度
foreach($sort as $key){
if($divs[$key] == 'p') $deeper++;
else if($deeper == 0) {
$length = $key-$pre_matches[0][$index][1];
break;
}else {
$deeper--;
}
}
$hitDivString = substr($data,$pre_matches[0][$index][1],$length).'</'.$tag.'>';
break;
}
}
return $hitDivString;
}
echo getWebTag('id="nav"','http://mail.163.com/html/mail_intro/','ul');
echo getWebTag('id="homeBanners"','http://mail.163.com/html/mail_intro/');
echo getWebTag('id="performance"','http://mail.163.com/html/mail_intro/','section');
//End_php

作者: Zjmainstay

    
[2]php中数组首字符过滤功能代码
    来源: 互联网  发布时间: 2013-11-30
代码如下:

<?php
$array = array(
'abcd',
'abcde',
'bcde',
'cdef',
'defg',
'defgh'
);
$str = '~'.implode('~',$array).'~';
$word = $_GET['word']; //url = xxx.php?word=a
preg_match_all("/~({$word}(?:[^~]*))/i",$str,$matches);
var_dump($matches[1]);

//输出
//array(2) { [0]=> string(4) "abcd" [1]=> string(5) "abcde" }
//End_php

另:这段代码发现了一个奇怪的问题:分隔符使用','(逗号)的时候会出现问题。

    
[3]PHP常用开发函数解析之数组篇[未完结]
    来源: 互联网  发布时间: 2013-11-30
一、数组处理函数:
醉感觉:数组处理函数在PHP开发中非常常见,学习好数组处理函数至关重要.数组处理函数在实际应用中涉及到:数组的创建,字符串于数组的相互转换,数组转XML,数组转JSON.数组的检测.数组的合并于分割.数组的数目.获取数组中的所有值,获取数组中的所有键值[下标]
1.创建数组:
$new = array();
2. implode(分隔,str) 把数组值数据按指定字符连接起来
代码如下:

$arr = array('Hello','World!','Beautiful','Day!');
echo implode(" ",$arr);输出
Hello World! Beautiful Day!

3.count(arr) 计算数组中的单元数目或对象中的属性个数
4.is_array(arr) 检测变量是否是数组
5.array_rand() 函数从数组中随机选出一个或多个元素,并返回。
代码如下:

$a=array("a"=>"Dog","b"=>"Cat","c"=>"Horse");
print_r(array_rand($a,1));

输出:b
代码如下:

$a=array("a"=>"Dog","b"=>"Cat","c"=>"Horse");
print_r(array_rand($a,2));View Code
Array ( [0] => c [1] => b )

6.array_sum() 函数返回数组中所有值的总和。
代码如下:

$a=array(0=>"5",1=>"15",2=>"25");
echo array_sum($a);

输出:45
7.array_slice() 函数在数组中根据条件取出一段值,并返回。
代码如下:

$a=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird");
print_r(array_slice($a,1,2));View Code
Array ( [0] => Cat [1] => Horse )

8.array_count_values() 函数用于统计数组中所有值出现的次数。
代码如下:

$a=array("Cat","Dog","Horse","Dog");
print_r(array_count_values($a));输出:
Array ( [Cat] => 1 [Dog] => 2 [Horse] => 1 )

3.数组转XML
代码如下:

function array2xml($array, $tag) {
function ia2xml($array) {
$xml="";
foreach ($array as $key=>$value) {
if (is_array($value)) {
$xml.="<$key>".ia2xml($value)."</$key>";
} else {
$xml.="<$key>".$value."</$key>";
}
}
return $xml;
}
return simplexml_load_string("<$tag>".ia2xml($array)."</$tag>");
}
$test['type']='lunch';
$test['time']='12:30';
$test['menu']=array('entree'=>'salad', 'maincourse'=>'steak');
echo array2xml($test,"meal")->asXML();

输出:
代码如下:

<?xml version="1.0"?>
<meal>
<type>lunch</type>
<time>12:30</time>
<menu>
<entree>salad</entree>
<maincourse>steak</maincourse>
</menu>
</meal>

    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
IP地址数字互转 iis7站长之家
▪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