下面是核心提取内容代码:
function processText($text) {
// 按照逗号分割文本
$parts = explode(',', $text);
$result = [];
foreach ($parts as $part) {
$part = trim($part);
// 使用正则表达式匹配中文字符
if (preg_match('/[\x{4e00}-\x{9fa5}]+/u', $part)) {
// 如果包含中文,进一步检查是否有空格
if (strpos($part, ' ') !== false) {
// 如果有空格,则只取空格前的中文内容
preg_match('|(.*) (.*)|iUs',$part,$res);
$result[] = $res[1];
} else {
// 如果没有空格,直接保留整个中文部分
$result[] = $part;
}
} else {
// 如果不包含中文,只保留英文部分并进行去重
$englishPart = explode(' ', $part);
$result[] = implode(" ", array_unique($englishPart));
}
}
// 用逗号重新组合结果并返回
return implode(',', $result);
}
利用正则提取内容代码
$htmltmp2 = Curl_get('https://movie.douban.com/subject/'.$id.'/celebrities');
preg_match_all('|<h2>制片人 Producer</h2>(.*)</ul>|iUs',$htmltmp2,$zpr);
$zpr1 = $zpr[1][0];
preg_match_all('|<span class="name"><a href="(.*)" title="(.*)" class="name">(.*)</a></span>|iUs',$zpr1,$res);
$zpr = implode(',', $res[2]);
$zpr = processText($zpr);
这里只是提取一个内容,其他需要提取的可以自己在添加代码!