10月52014
php采集文章过滤版权信息
function TT($html,$maxlen) {
if (preg_match("/<title>(.*)<\/title>/isU", $html, $t)) {
if (preg_match_all("/<h([1-3])(?:[^>]*)>(.*)<\/h\\1>/isU", $html, $ts)) {
foreach($ts[2] as $vt) {
if (strpos($t[1], $vt) !== false) return $vt;
}
}
$t[1] = str_replace(array('-', '—', '_', '>'), '|', $t[1]);
$splits = explode('|', $t[1]);
$l = 0;
foreach ($splits as $tp) {
$len = strlen($tp);
if ($l < $len) {
$l = $len;
$tt = $tp;
}
}
$tt = trim(str_replace('"', '"', cn_substr(html2text($tt), $maxlen)));
return $tt;
}
return false;
}
/**
* HTML转换为文本
*
* @param string $str 需要转换的字符串
* @param string $r 如果$r=0直接返回内容,否则需要使用反斜线引用字符串
* @return string
*/
function html2text($str,$r=0) {
$str = preg_replace("/<sty(.*)\\/style>|<scr(.*)\\/script>|<!--(.*)-->/isU", "", $str);
$alltext = "";
$start = 1;
for($i = 0;$i < strlen($str);$i++) {
if ($start == 0 && $str[$i] == ">") {
$start = 1;
} else if ($start == 1) {
if ($str[$i] == "<") {
$start = 0;
$alltext .= " ";
} else if (ord($str[$i]) > 31) {
$alltext .= $str[$i];
}
}
}
$alltext = str_replace(" ", " ", $alltext);
$alltext = preg_replace("/&([^;&]*)(;|&)/", "", $alltext);
$alltext = preg_replace("/[ ]+/s", " ", $alltext);
if($r==0){
return $alltext;
}else {
$r = SpHtml2Text(stripslashes($alltext));
return addslashes($r);
}
}
/**
* utf-8中文截取,单字节截取模式
*
* @access public
* @param string $str 需要截取的字符串
* @param int $slen 截取的长度
* @param int $startdd 开始标记处
* @return string
*/
function cn_substr($str, $length, $start = 0) {
if (strlen($str) < $start + 1) {
return '';
}
preg_match_all("/./su", $str, $ar);
$str = '';
$tstr = '';
for($i = 0; isset($ar[0][$i]); $i++) {
if (strlen($tstr) < $start) {
$tstr .= $ar[0][$i];
} else {
if (strlen($str) < $length + strlen($ar[0][$i])) {
$str .= $ar[0][$i];
} else {
break;
}
}
}
return $str;
}
发表评论
木有头像就木JJ啦!还木有头像吗?点这里申请属于你的个性Gravatar头像吧!