与Facebook类似,我正在构建一个允许用户发布链接的应用程序。
用户填写输入字段中的链接,控制器返回
Title
Link
Meta description
Images (as thumbnails)
到视图。
这是控制器代码:
$url = $this->input->post('posts_link');
if (!empty($url)) {
$html = file_get_html($url);
foreach ($html->find('img') as $element) {
$src = "";
$src = $element->src;
if (preg_match("/\.jp[e]?g$/i", $src)) {
$images[] = $src;
}
}
$data['posts_link'] = $url;
$data['images'] = $images;
$data['title'] = $html->find('title', 0)->plaintext;
$data['meta'] = get_meta_tags($url);
我遇到的问题是没有图像,没有标题或没有描述(单独或组合)。
我正在使用codeigniter,它会在视图上抛出几个错误,我宁愿压制它。
如果DOM解析器没有返回标题/图像/描述,是否有最佳做法可以抑制这些错误或放置空变量?
例如我试过
$data['images'] = $images ? $images : '';
但它无法解决我的问题。
有什么建议吗?
感谢。
答案 0 :(得分:1)
您需要在使用变量之前预先定义变量。对于$images
,它将是
$images = array();
在if (!empty($url)) {
等之后
答案 1 :(得分:0)
if (array_key_exists('images', $data)) {
// display the image
}
else
{
//set a default image, etc
}
或类似isset
的内容答案 2 :(得分:-1)
您可以使用@符号来抑制错误。即。
@ $data['images'] = $images;