如何避免“警告:file_get_contents():文件名不能为空”检查空值时

时间:2016-12-11 18:09:47

标签: php file-get-contents

我有一个PHP脚本,它从CSV读取,部分脚本有一个if语句,用于验证CSV中的单元格是否为空。如果单元格为空,则执行if语句中的代码。如果单元格不是空的,则不需要发生任何事情。

虽然脚本完美无缺,并且完全符合我的需要,但我收到以下警告:

enter image description here 如果代码正在检查CSV中的空单元格,则看起来该警告将始终显示。单元格为空的这一事实不是问题,因为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 ); } 语句来检查单元格是否为空的重点。

以下是与此相关的脚本部分:

class Upload
  mount_uploader :file, FileUploader
end

@upload = Upload.new
@upload.file = File.new("abc.html", 'w')
@upload.save!

我做错了吗?为什么PHP坚持向我显示此警告,即使我只在单元格 为空时执行代码。谢谢你的时间。

1 个答案:

答案 0 :(得分:1)

这需要删除代码的base64_encode(file_get_contents())部分。

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

成为:

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