2016-05-20 4 views
0

Которым я экспортирующие все продукты в CSV-файл,PHP fputcsv не работает, и не создавая csvfiles

Но мой csvfile не создавать, я могу видеть выходных переменных на экране.

<?php 
ini_set('display_errors', 1); 
ini_set('display_startup_errors', 1); 
error_reporting(E_ALL); 
set_time_limit(0); 
require_once '/var/www/html/app/Mage.php'; 
umask(0); 

Mage::app('default'); 

$connection = Mage::getSingleton('core/resource')->getConnection('core_write'); 

define('CSV_PATH', 'var/www/html/rahul_csvfiles/'); // specify CSV file path 

$csv_fileoutput = CSV_PATH . "cfd_all_products_log".date("Y-m-d H:i:s").".csv"; 
$csvfileoutput = fopen($csv_fileoutput, 'a'); 
fputcsv($csvfileoutput, array('Entity_id','SKU','Product_Name','Product Name','Title', 'Short Description', 'Long Description', 'URL')); 

$store_id = 2; 
$collection = Mage::getModel('catalog/product')->getCollection()->addStoreFilter($store_id) 
->addAttributeToSelect('*') 
->setPageSize(3) 
->setCurPage(1); 

foreach ($collection as $product) { 
    $product_id = $product->getID(); 
    $sku = $product->getSKU(); 
    $productname = $product->getName(); 
    $price = (float) $product->getPrice(); 
    $description = $product->getDescription(); 
    $shortdescription = $product->getShortDescription(); 
    $url = $product->getProductUrl(); 
echo $product_id. "\n"; 
echo $sku. "\n"; 
echo $productname. "\n"; 
echo $price. "\n"; 
echo $url . "\n"; 

fputcsv($csvfileoutput, array($product_id,$sku,$productname,$productname,$price,$description,$shortdescription,$url)); 
} 

?> 

Пожалуйста, дайте мне знать, где я делаю неправильно. Любое предложение было бы полезно.

Благодаря

+0

Отметьте ответ от '$ csvfileoutput = fopen ($ csv_fileoutput, 'a');' [fopen()] (http://php.net/manual/en/function.fopen.php) 'Возвращает файл ресурс указателя на успех или FALSE при ошибке. ' –

+0

Значение' CSV_PATH' не начинается с косой черты, поэтому вы, вероятно, пытаетесь записать в несуществующий каталог. –

ответ

1

Если файл не создается вообще, это означает, что это проблема с fopen и не fputcsv.

Вам нужна некоторая отладка здесь. Первый сброс $csvfileoutput с использованием var_dump. Вероятно, это false, что означает, что он не смог открыть файл.

Если это действительно false, то я думаю, что это проблема с разрешениями. Убедитесь, что пользователь веб-сервера (обычно www-data, если вы используете Apache) имеет возможность записи в пути, где вы пытаетесь создать файл (CSV_PATH).