我基本上制作了一个分析域名的脚本,其中一部分是获取他们的“锚文本”并查看这些字符串是否包含任何中文符号。
我正在使用此代码,但它似乎不起作用:
foreach ($anchors as $anchor) {
// echo $anchor;
if (preg_match("/\p{Han}+/u", $anchor))
$chinese_flag = 1;
if($chinese_flag == 1):
echo "Found Chinese anchor in: " . $anchor;
break;
endif;
}
当试图回应每个锚点时,我可以清楚地看到一些锚点使用中文符号,例如中文网站100强(仅举一个例子)。我在这里做错了什么?
P.S。我还尝试过在堆栈溢出时发现的其他RE,但似乎没有一个在我的情况下工作。
答案 0 :(得分:1)
这似乎有效:
foreach ($anchors as $anchor) {
$chinese_flag = FALSE;
if (preg_match("/[\p{Han}]/simu", $anchor))
$chinese_flag = TRUE;
if($chinese_flag):
echo "Found Chinese anchor in: " . $anchor;
break;
endif;
}
根据您的评论,我更新了答案:
<?php
$test = '中';
$anchor = html_entity_decode($test, ENT_COMPAT, 'UTF-8');
if (preg_match("/[\p{Han}]/simu", $anchor)) {
echo 'Yay';
}
?>