我写了一个代码来添加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
似乎必须逃避一些问题我尝试使用我的设置代码作为“美国的黄金价格”,但在管理产品中我只是得到了“黄金”
答案 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;
}