2016-12-11 10 views
0

私は、CSVから読み込んだスクリプトの一部にifという文があり、その中のセルを検証します。 CSVはセルが空であるかどうかを示します。セルが空の場合は、if内のコードが実行されます。セルが空でない場合、何も起こる必要はありません。 「警告:file_get_contents():ファイル名は空ではありません」

スクリプトが完璧に動作し、私は必要な正確に何していますが

は、私は次の警告を受けています:

enter image description here コードはCSV内の空のセルに対してチェックされている場合、この警告が常に表示されますかのように見えます。セルが空であるかどうかをチェックするために、ifステートメントを持つ全ポイントである、CSVのセルの一部が正しく空であるため、セルが空であるということは問題ではありません。ここで

は、これに関連する私のスクリプトのセグメントである:

// If the previous row has an empty 'Main Image' field, add the additional image field for that row. 
// The line below is line 145 from the screenshot above. 
if (!empty(base64_encode(file_get_contents($previousDataLine['Main Image'])))) { 
     $client->catalogProductAttributeMediaCreate(
      $sessionId, 
      $dataLine['Product SKU'], 
      array(
       'file' => array(
        'content' => base64_encode(file_get_contents($dataLine['All Images (One Per Row)'])), 
        'mime' => 'image/png', 
       ), 
       'position' => $dataLine['Image Rank Position'], 
       'exclude' => '0' 
      ), 
      0 
     ); 
} 

は私が何か間違ったことをしたのでしょうか。なぜ、セルがでなく、が空の場合にのみ、コードを実行しても、PHPは私にこの警告を表示することを主張しています。あなたの時間をありがとう。

+1

チェック '$ previousDataLine [ 'メイン画像が']'空でない場合。 –

+0

'if(!empty($ previousDataLine ['Main Image'])&&!empty(base64_encode(file_get_contents $ previousDataLine ['メインイメージ'])))){{ – Federkun

+0

@Federkunあなたは答えにそれを上げるべきです。 – Stuart

答えて

1

コードの一部を削除する必要があります。

if (!empty(base64_encode(file_get_contents($previousDataLine['Main Image'])))) {

になった:

if (!empty($previousDataLine['Main Image'])) {

+1

興味深い参照:[ここ](http://stackoverflow.com/questions/15212127/is-an-empty-string-valid-base64-encoded-data-of-zero-bytes-length) – Martin

関連する問題