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]); //比上面这么多步骤数组结果还少最后一个空元素