Cake PHP 元标记关键字给出 "Array" 而不是关键字
Cake PHP meta tag keyword giving "Array" instead of keywords
蛋糕方面PHP,我是新手
我网站中的一些页面提供如下元关键字。
<meta content="Array" name="keywords"></meta>
我发现元数据来自 app/views/layouts/defautlt.ctp
,我们有下面的代码来显示元关键字。
<meta name="keywords" content="<?php echo $meta_keywords; ?>" />
我被困在这里了。我怎样才能找到错误是什么。
注意: 一些页面正确显示元关键字。但大多数页面显示 Array
作为关键字。
我还在下面添加了元描述代码。
<meta name="description" content="<?php echo reset($meta_description); ?>" />
将关键字显示为 Array
的原因可能是什么?
我评论中的代码可以正常工作,但你应该明白它为什么有效。
当您回显 PHP 中的数组时,它不会打印数组的内容。它只打印 "Array".
您有时能正确看到元关键字的原因是 $meta_keywords 包含一个字符串。有时您只会看到 "Array",因为在这些情况下 $meta_keywords 包含一个字符串数组。
$meta_keywords = "my_keyword";
echo $meta_keywords; // prints "my_keyword"
$meta_keywords = array("kw1", "kw2", "kw3");
echo $meta_keywords; // prints "Array"
当你想打印一个数组的内容时,你可以使用print_r()函数。
$meta_keywords = array("kw1", "kw2", "kw3");
print_r($meta_keywords);
// prints:
// Array ( [0] => kw1
// [1] => kw2
// [2] => kw3
//)
当你想将一个数组的内容连接成一个字符串时,你可以使用implode() function. To check if a variable is an array, use the is_array()函数。
?: 是 PHP 中的 ternary operator。代码:
echo (is_array($meta_keywords)) ? implode(",", $meta_keywords) : $meta_keywords;
相当于:
if (is_array($meta_keywords)) {
echo implode(",", $meta_keywords);
} else {
echo $meta_keywords;
}
所以当
$meta_keywords = "my_keyword",
is_array()
returns false,你得到输出 "my_keyword"。
当
$meta_keywords = array("kw1", "kw2", "kw3"),
is_array()
returns true 并且你得到输出 "kw1,kw2,kw3".
希望这对您有所帮助。
蛋糕方面PHP,我是新手
我网站中的一些页面提供如下元关键字。
<meta content="Array" name="keywords"></meta>
我发现元数据来自 app/views/layouts/defautlt.ctp
,我们有下面的代码来显示元关键字。
<meta name="keywords" content="<?php echo $meta_keywords; ?>" />
我被困在这里了。我怎样才能找到错误是什么。
注意: 一些页面正确显示元关键字。但大多数页面显示 Array
作为关键字。
我还在下面添加了元描述代码。
<meta name="description" content="<?php echo reset($meta_description); ?>" />
将关键字显示为 Array
的原因可能是什么?
我评论中的代码可以正常工作,但你应该明白它为什么有效。
当您回显 PHP 中的数组时,它不会打印数组的内容。它只打印 "Array".
您有时能正确看到元关键字的原因是 $meta_keywords 包含一个字符串。有时您只会看到 "Array",因为在这些情况下 $meta_keywords 包含一个字符串数组。
$meta_keywords = "my_keyword";
echo $meta_keywords; // prints "my_keyword"
$meta_keywords = array("kw1", "kw2", "kw3");
echo $meta_keywords; // prints "Array"
当你想打印一个数组的内容时,你可以使用print_r()函数。
$meta_keywords = array("kw1", "kw2", "kw3");
print_r($meta_keywords);
// prints:
// Array ( [0] => kw1
// [1] => kw2
// [2] => kw3
//)
当你想将一个数组的内容连接成一个字符串时,你可以使用implode() function. To check if a variable is an array, use the is_array()函数。
?: 是 PHP 中的 ternary operator。代码:
echo (is_array($meta_keywords)) ? implode(",", $meta_keywords) : $meta_keywords;
相当于:
if (is_array($meta_keywords)) {
echo implode(",", $meta_keywords);
} else {
echo $meta_keywords;
}
所以当
$meta_keywords = "my_keyword",
is_array()
returns false,你得到输出 "my_keyword"。
当
$meta_keywords = array("kw1", "kw2", "kw3"),
is_array()
returns true 并且你得到输出 "kw1,kw2,kw3".
希望这对您有所帮助。