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头像吧!