为什么这个数总是返回1?

时间:2012-01-23 16:12:01

标签: php regex function count

我有以下函数来计算标记中的字符数。输出总是'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;
}

4 个答案:

答案 0 :(得分:10)

使用strlen( $str )计算字母数:

$myStr = 'Hello world';
echo strlen($myStr); // outputs 11

Strlen意味着 Str ing Len gth。

答案 1 :(得分:2)

您可能希望使用strlen()代替count()。我认为count()首先转换为数组,然后计算该数组中的元素数量,在本例中为1

http://php.net/manual/en/function.strlen.php

http://php.net/manual/en/function.count.php

答案 2 :(得分:1)

我认为您需要strlen()功能,而不是count()

答案 3 :(得分:1)

如果您使用utf-8编码(非拉丁字符),mb_strlen()会更准确。