将描述添加到产品表单csv文件中

时间:2016-08-12 09:05:25

标签: php csv magento

我写了一个代码来添加sku的产品描述。现在脚本工作正常,但所有格式似乎都丢失,因为在csv和添加到产品的描述是部分的(似乎它删除任何特殊字符后的字符串)。

我的代码:

require_once 'app/Mage.php';
umask(0);
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
if (($handle = fopen("Witedescriptions.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $desc =$data[1];
        $sku = $data[2];
        $product = Mage::getModel('catalog/product')->loadByAttribute('sku',$sku);
        $product->setDescription($desc);
        $product->save();
    }
    fclose($handle);
}

Csv文件struture

Sno. , Description , Sku

关于描述的样本数据

Test this is dummy data abd’s base is of a slim yellow gold halo that easily fits on a finger. 

list here 
•   list 1
•   list 2

当我运行脚本时,产品仅包含以下数据:

Test this is dummy data abd

似乎必须逃避一些问题我尝试使用我的设置代码作为“美国的黄金价格”,但在管理产品中我只是得到了“黄金”

2 个答案:

答案 0 :(得分:0)

另外要使用addslashes来转义引号:

$desc = addslashes($data[1]);

但这确实意味着他们需要在输出时删除。

答案 1 :(得分:0)

使用这些功能逃避字符串中的'

$data = trim(htmlentities(strip_tags($data)));

$data = mysql_real_escape_string($data);

public function filter($data)
    {
        $data = trim(htmlentities(strip_tags($data)));
        // print_r($data);
        if (get_magic_quotes_gpc()){
            // print_r($data);
            $data = stripslashes($data);
            // print_r($data);
            $data = mysql_real_escape_string($data);
            // print_r($data);
        }
        return $data;       
    }