在线客服与您一对一交流
当前位置: 主页 > 行业新闻 > IT技术 >

PHP常用处理字符串函数

PHP输出一个指定范围内的随机数
<?php echo mt_rand(5, 15); ?>
php查找字符串中出现的次数函数substr_count
判断字符串中是否包含另一个字符串函数strpos
PHP 截取字符串函数substr() 
PHP 字符串替换函数 str_replace() 
PHP中.= 连接字符串
php5.4以上版本GBK编码下htmlspecialchars输出为空,原因在于php5.4.0对这个函数htmlspecialchars的变化,原来是ISO-8859-1,5.4后默认变成utf-8!然后中文使用这个函数就输出为空白了。
只能使用 htmlspecialchars($str,ENT_COMPAT,'GB2312'); 
或者
htmlspecialchars($str,ENT_COMPAT,'ISO-8859-1');  //gbk
/**
* 中英文截取字符串,汉字安2个字节
*
* @access public
* @param string $str 需要截取的字符串
* @param int $cutLen 截取的长度
* @param bool $cutSlashes 是否去掉\
* @param bool $addSlashes 是加\
* @param string $oDot 截取后加的字符串,如经常用的三个点
* @param bool $hasHtml 是否有html
* @return string
*/
function cn_substr($str, $cutLen, $oDot = null, $hasHtml = false, $cutSlashes = false, $addSlashes = false) {
    global $cfg_soft_lang;
    $str = trim ( $str );
    if ($cutSlashes) $str = stripslashes ( $str );
    if($hasHtml) {
        $str = preg_replace ("/(\<[^\<]*\>|\r|\n|\s|\[.+?\])/is",'', $str );
        //$str = htmlspecialchars ( $str,ENT_COMPAT,'GB2312');
        $str = htmlspecialchars ( $str,ENT_COMPAT,'ISO-8859-1');
    } else {
        //$str = htmlspecialchars ( $str,ENT_COMPAT,'GB2312');
        $str = htmlspecialchars ( $str,ENT_COMPAT,'ISO-8859-1');
    }
    if ($cutLen && strlen ( $str ) > $cutLen) {
        $nStr = '';
        if ($cfg_soft_lang == 'utf-8') {
            $n = 0;
            $tn = 0;
            $noc = 0;
            while ( $n < strlen ( $str ) ) {
                $t = ord ( $str [$n] );
                if ($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) {
                    $tn = 1;
                    $n ++;
                    $noc ++;
                } elseif (194 <= $t && $t <= 223) {
                    $tn = 2;
                    $n += 2;
                    $noc += 2;
                } elseif (224 <= $t && $t < 239) {
                    $tn = 3;
                    $n += 3;
                    $noc += 2;
                } elseif (240 <= $t && $t <= 247) {
                    $tn = 4;
                    $n += 4;
                    $noc += 2;
                } elseif (248 <= $t && $t <= 251) {
                    $tn = 5;
                    $n += 5;
                    $noc += 2;
                } elseif ($t == 252 || $t == 253) {
                    $tn = 6;
                    $n += 6;
                    $noc += 2;
                } else {
                    $n ++;
                }
                if ($noc >= $cutLen)break;
            }
            if ($noc > $cutLen) $n -= $tn;
            $nStr = substr ( $str, 0, $n );
        } else {
            for ($i = 0; $i < $cutLen - 1; $i ++) {
                if (ord ( $str [$i] ) > 127) {
                    $nStr .= $str [$i] . $str [$i + 1];
                    $i ++;
                } else {
                    $nStr .= $str [$i];
                }
            }
        }
        $str = $nStr . $oDot;
    }
    if ($addSlashes) $str = addslashes ( $str );
    $str = htmlspecialchars_decode ( $str );
    return trim ( $str );
}
//返回当前的毫秒时间戳
function msectime() {
    list($msec, $sec) = explode(' ', microtime());
    $msectime = (float)sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000);
    return $msectime;
}
$wjname = md5(msectime()+$a);
$truefile = $templetdird.'/txt/'.$wjname.'.txt';
$fp = fopen($truefile, 'w') or die("Unable to open file!");
fwrite($fp, $newcontent);
echo "成功写入第".($w+1)."篇文章<br>";
fclose($fp);
php处理文本文件,去除空行
去除空行
$str = file_get_contents('a.txt');
$str = explode(PHP_EOL, $str);    //分割为数组,每行为一个数组元素
$str = array_filter($str);    //去除数组中的空元素
$str = implode(PHP_EOL,$str);    //用换行符连结数组为字符串
file_put_contents('b.txt',$str);
PHP读取目录下的文本文件
header("content-type:text/html;charset=utf-8");
$templetdird = str_replace("\\", '/', dirname(__FILE__) ) .'/ccc';
$dh = dir($templetdird);
while($filename=$dh->read())
{
   if(!preg_match("#\.txt#", $filename)) continue;
    $filenames[]=$filename;
}
$file_arr = file($file); ###得到数组
file() 函数把整个文件读入一个数组中。
数组中的每个元素都是文件中相应的一行,包括换行符在内。
//$fp1 = fopen($templetdird.'/'.$randsz[$a], 'r');
//$content = fread($fp1, filesize($templetdird.'/'.$randsz[$a]));
//fclose($fp1);
//$cont_arr = explode(PHP_EOL, $content);
$cont_arr =file($templetdird.'/'.$randsz[$a]); //比上面这么多步骤数组结果还少最后一个空元素

相关文章:

  • 帝国CMS是什么程序 帝国CMS是一套开源的静态页面程序,凭借超高的扩展性,很多知名的新闻站点、行业站点都是应用的帝国CMS后端。因为帝国CMS和dedecms一样都是生成静态页面的,所以非常利于...

  • 域名解析DNS分为显性URL和隐形URL,显性URL和隐形URL有什么区别?隐形URL和显性URL哪个更有利于SEO?显性URL相当于域名了302重定向,隐形URL使用iframe框架技术隐藏真实目标地址,显性URL更有利于...

  • 在常见的CMS系统中,我对dedecms算是比较熟悉的,自己网站用的也是这个系统。系统功能强大使用灵活,相信这也是它受到大多数中小站长青睐的原因。 再好的系统也有照顾不周的地方,很多站...

  • 这篇文章主要为大家详细介绍了dedecms后台增加php导出excel功能实现办法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴。 不少朋友希望织梦的后台...

  • 第一次使用的插件是 pdfobject.js 百度网盘下载地址:http://pan.baidu.com/s/1kUPhYdT 加载 script src=/style/js/pdfobject.js /script script type=text/javascript window.onload = function (){ var success = new PDFObject({ url: pdf文件地...

  • 网上有一种方法是copy+unlink来移动文件,但是遇到大文件时会消耗大量时间,对性能不怎么友好,可以使用rename()来移动文件,速度非常快 关于rename()函数 bool rename ( string $oldname , string $newname...

  • 基于我们公司可选的几种推广方式: 一、关键词优化排名推广(推荐) 指定关键词推广,按天付费,推广我们业务中最重要的一些关键词,达到百度首页才收费,大概一个关键词10元/天左右。...

  • 插件介绍 wordpress程序网站在发布文章时可以给每一片文章添加与之相关的TAG标签,对于TAG标签可以生成很多页面,增加搜索引擎对内容的抓取量。 WP Auto Keywords插件就是一款能自动给文章添加...

  • 5.7 生成列表页 改动 include/arc.listview.class.php 1.先设置 关闭副栏目(在系统----系统基本参数性能选项里) 2.一般网站不需要 栏目交叉 交叉 所以 找到94行注释掉: //获得交叉栏目ID /*if($this-Type...

  • 使用preg_replace将删除所有空白(包括制表符等) $string = user na me $string = preg_replace(/\s+/, , $string); echo $string; // username preg_replace(/\s/u, ,$string) u (PCRE8) 此修正符打开一个与perl不兼容的附加功能. 模式...

  • 公司:绵阳蟠龙网络科技有限公司
  • 联系人:张经理
  • 手机/微信18681637328:
  • Q Q: 点击这里给我发消息
  • 地址:绵阳市雁塔区唐延南路11号逸翠园i都会