当前位置:  编程技术>php
本页文章导读:
    ▪php中html页面提取图片路径并替换的方法      代码如下:   代码示例: <?php /**  * php 提取html中图片并替换  * autho www. */ //要替换的内容 $content = '<img alt="" src="/blog_article/js/fckeditor/UserFiles/image/F201005201210502415831196.jpg" width="600" height="366">&.........
    ▪php分割GBK中文乱码的解决方法      类似如下的字符串(GBK), explode()不能得到正确结果: $result = explode("|", "滕华弢|海青"); 究其原因, 对于”弢”字(读tao,不认识没关系,我也不认识), 因为他的GBK编码值为: 8f7c, 不巧的是, “|”的ASCII.........
    ▪php实现json_encode的代码实例      我们知道,json_encode 是在5.2.0才作为标准扩展加入php的,我用的是php5.1.6,该扩展还未加进来。 不想再编译扩展了,于是自己用php实现json_encode,以下是实现代码,供大家学习参考。 代码如下.........

[1]php中html页面提取图片路径并替换的方法
    来源: 互联网  发布时间: 2013-12-24

代码如下:
 

代码示例:
<?php
/**
 * php 提取html中图片并替换
 * autho www.
*/
//要替换的内容
$content = '<img alt="" src="/blog_article/js/fckeditor/UserFiles/image/F201005201210502415831196.jpg" width="600" height="366"><br><br><br><br><img alt="" src="/blog_article/js/fckeditor/UserFiles/image/33_avatar_middle.jpg" width="120" height="120">';  
     
//提取图片路径的src的正则表达式  
preg_match_all("/<img(.*)src="/blog_article/([^/index.html"]+)"[^>]+>/isU",$content,$matches);  
     
   $img = "";  
   if(!emptyempty($matches)) {  
   //注意,上面的正则表达式说明src的值是放在数组的第三个中  
 $img = $matches[2];  
   }else {  
 $img = "";  
   }  
if (!emptyempty($img)) {  
 $img_url = "http://".$_SERVER['SERVER_NAME'];  
     
 $patterns= array();  
 $replacements = array();  
     
 foreach($img as $imgItem){  
     
 $final_imgUrl = $img_url.$imgItem;  
 $replacements[] = $final_imgUrl;  
     
 $img_new = "/".preg_replace("/\//i","\/",$imgItem)."/";  
 $patterns[] = $img_new;  
}  
     
//让数组按照key来排序  
ksort($patterns);  
ksort($replacements);  
     
//替换内容  
$vote_content = preg_replace($patterns, $replacements, $content);
?>

大家也可以参考下php正则取图片路径与php取图片路径的正则写法,里面有关于用正则取内容中图片的方法,对理解以上的代码,会有所帮助的。


    
[2]php分割GBK中文乱码的解决方法
    来源: 互联网  发布时间: 2013-12-24

类似如下的字符串(GBK), explode()不能得到正确结果:
$result = explode("|", "滕华弢|海青");

究其原因, 对于”弢”字(读tao,不认识没关系,我也不认识), 因为他的GBK编码值为: 8f7c, 不巧的是, “|”的ASCII值也是7c.

还有一些类似的问题: 因为GBK编码的编码范围是: 0×8140-0xfefe, 所以, 理论上来说, 任何低字节是7c的字都会有这个问题, 比如:
倈(827c), 億(837c), 眧(b17c), 鍇(e57c).......等等等等

对于这样的情况,
    第一, 可以采用转码到utf8, 然后explode, 再转回来, 这是比较麻烦的方法.
    第二, 我们可以采用正则拿"匹配出"来代替"分离出":
        preg_match_all("/([/x81-/xfe][/x40-/xfe])+/", $gbk_str, $matches);//写死编码
这样, $matches中0号索引对应的数组就是结果词的数组了..

以上就是有关php GBK编码问题的解决方法,不知是否可以解决您的问题,欢迎与大家沟通交流。
 

您可能感兴趣的文章:
php函数substr截取中文字符出现乱码的解决方法
php substr截断中文半个汉字乱码问题的解决方法
php乱码问题 utf8乱码杂谈
php截取中文字符串乱码如何解决呢
解决php截取utf-8中文字符串时乱码的问题
如何解决php中文字符乱码,中文字符入库乱码的问题
php中文字符串截断且无乱码的解决方法
有关php中文乱码的解决方法
php utf8 一半乱码的问题


    
[3]php实现json_encode的代码实例
    来源: 互联网  发布时间: 2013-12-24

我们知道,json_encode 是在5.2.0才作为标准扩展加入php的,我用的是php5.1.6,该扩展还未加进来。
不想再编译扩展了,于是自己用php实现json_encode,以下是实现代码,供大家学习参考。

代码如下:
 

代码示例:
<?php 
/**
 * php json_encode代码
 * site http://www.
*/
    function __json_encode( $data ) {            
        if( is_array($data) || is_object($data) ) { 
            $islist = is_array($data) && ( empty($data) || array_keys()($data) === range(0,count($data)-1) ); 
      
            if( $islist ) { 
                $json = '[' . implode(',', array_map('__json_encode', $data) ) . ']'; 
            } else { 
                $items = Array(); 
                foreach( $data as $key => $value ) { 
                    $items[] = __json_encode("$key") . ':' . __json_encode($value); 
                } 
                $json = '{' . implode(',', $items) . '}'; 
            } 
        } elseif( is_string($data) ) { 
            # Escape non-printable or Non-ASCII characters. 
            # I also put the \\ character first, as suggested in comments on the 'addclashes' page. 
            $string = '"' . addcslashes()($data, "\\\"\n\r\t/" . chr(8) . chr(12)) . '"'; 
            $json    = ''; 
            $len    = strlen($string); 
            # Convert UTF-8 to Hexadecimal Codepoints. 
            for( $i = 0; $i < $len; $i++ ) { 
      
                $char = $string[$i]; 
                $c1 = ord($char); 
      
                # Single byte; 
                if( $c1 <128 ) { 
                    $json .= ($c1 > 31) ? $char : sprintf()("\\u%04x", $c1); 
                    continue; 
                } 
      
                # Double byte 
                $c2 = ord($string[++$i]); 
                if ( ($c1 & 32) === 0 ) { 
                    $json .= sprintf("\\u%04x", ($c1 - 192) * 64 + $c2 - 128); 
                    continue; 
                } 
      
                # Triple 
                $c3 = ord($string[++$i]); 
                if( ($c1 & 16) === 0 ) { 
                    $json .= sprintf("\\u%04x", (($c1 - 224) <<12) + (($c2 - 128) << 6) + ($c3 - 128)); 
                    continue; 
                } 
      
                # Quadruple 
                $c4 = ord($string[++$i]); 
                if( ($c1 & 8 ) === 0 ) { 
                    $u = (($c1 & 15) << 2) + (($c2>>4) & 3) - 1; 
      
                    $w1 = (54<<10) + ($u<<6) + (($c2 & 15) << 2) + (($c3>>4) & 3); 
                    $w2 = (55<<10) + (($c3 & 15)<<6) + ($c4-128); 
                    $json .= sprintf("\\u%04x\\u%04x", $w1, $w2); 
                } 
            } 
        } else { 
            # int, floats, bools, null 
            $json = strtolower()(var_export( $data, true )); 
        } 
        return $json; 
    } 
?> 

    
最新技术文章:
▪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