我有以下函数来计算标记中的字符数。输出总是'1',即使我知道它是一个数字以上的事实。我做错了什么?
$www = $_POST['url'];
$url = file_get_contents($www);
[更多代码]
function countTitle() {
global $url;
$search = "/\<title\>(.*)\<\/title\>/";
preg_match($search, $url, $result);
$title = $result[1]; // to string
$counttitle = count($title);
echo $counttitle;
}
我知道正则表达式有效,因为我使用以下函数来回显标题标记:
function getTitle() {
global $url;
$search = "/\<title\>(.*)\<\/title\>/";
preg_match($search, $url, $result);
$title = $result[1]; // to string
echo $title;
}
答案 0 :(得分:10)
使用strlen( $str )
计算字母数:
$myStr = 'Hello world';
echo strlen($myStr); // outputs 11
Strlen意味着 Str ing Len gth。
答案 1 :(得分:2)
您可能希望使用strlen()
代替count()
。我认为count()
首先转换为数组,然后计算该数组中的元素数量,在本例中为1
。
答案 2 :(得分:1)
我认为您需要strlen()
功能,而不是count()
。
答案 3 :(得分:1)
如果您使用utf-8编码(非拉丁字符),mb_strlen()会更准确。