2016-08-12 8 views
1

skuの商品説明を追加するコードを書いた。今すぐスクリプトは正常に動作しますが、すべての書式設定はcsvのように失われているように見え、製品に追加された説明は部分的です(特殊文字の後に文字列を削除するようです)。商品フォーム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ファイルカルコゲノフルバレン骨格

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 

はにaddslashesを使用し、私は「米国のゴールドの価格」として設定私のdescritionであなたのコードを試してみましたが、管理製品に私は引用符をエスケープするためにも、「ゴールド」

+0

私はあなたのコードをテストしてみたCSVファイルを解析する際には問題はありませんし、値を取得します。問題はここにあるはずです: '$ product-> setDescription($ desc);'、だからその関数を見てください。私は、データベースに格納する前に、問題のある文字を説明から削除/置換する必要があると思います。 –

+0

それはちょっと物事がaddslahesを追加しても動作していない理由を見つけることができませんでした – gaurav

答えて

0

を持って、それはいくつかの文字をエスケープする必要があるようです:

$desc = addslashes($data[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;  
    } 
+0

が動作しない、私は空のコンテンツを取得 – gaurav

+0

私は私の側でそれを確認してみましょう –

+0

ok pls do ............. .... – gaurav

関連する問題