傅令江的光影色彩世界
php采集文章过滤版权信息
2014-10-5 令狐江
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;
} 
发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容