在Opencart中自动填充元描述

时间:2012-06-19 13:58:05

标签: php automation meta-tags opencart

我正在尝试在我正在Opencart上工作的网站上为700多种产品添加元描述,我希望我不必手动完成。已经有每个产品的产品说明,我遇到了一个脚本,在一定程度上完成了这个,但我需要稍微调整一下。我没有接近PHP大师的任何地方,我希望SO上有人可以提供帮助。

这是代码:     

// Registry
$registry = new Registry();

// Loader
$loader = new Loader($registry);
$registry->set('load', $loader);

// Config
$config = new Config();
$registry->set('config', $config);

function get_meta_desc($string){
    return substr(strip_tags($string), 0, 255); 
}

// Database 
$db = new DB(DB_DRIVER, DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
$registry->set('db', $db);

$query = $db->query("SELECT * FROM `" . DB_PREFIX . "product_description` Order By product_id ASC");

foreach ($query->rows as $row){
    $query2 = $db->query("UPDATE `" . DB_PREFIX . "product_description` SET meta_description = '". mysql_real_escape_string(get_meta_desc($row['description'])) ."' WHERE product_id = '".$row['product_id']."'");
}

echo 'done';
@unlink('runonce.php');

问题是,它不是剥离HTML标签。我不太了解PHP,但在我看来它应该工作,我无法弄清楚为什么不。

我希望添加到脚本中的另一个方法是检查元描述中是否已有内容,如果是,则不要执行任何操作并跳到下一个。

谢谢, EVU。

1 个答案:

答案 0 :(得分:1)

描述通常在放入数据库之前进行html编码。

所以你的功能应该是:

function get_meta_desc($string){
    return substr(strip_tags(html_entity_decode($string)), 0, 255); 
}

要检查是否存在元描述,您需要检查meta_description列:

function get_meta_desc($string, $meta){
    if(!empty($meta))
        return $meta;

    return substr(strip_tags(html_entity_decode($string)), 0, 255); 
}

get_meta_desc($row['description'], $row['meta_description']);