我如何更新从外部CSV文件链接使用PHP数据的CSV文件?



我需要帮助我的PHP代码。

我们有一个电子商务网站与wordpress和woocommerce。该站点需要通过数据提要从另一个站点的csv文件导入产品。

数据feed的设置需要在网站的文件系统中有一个php文件和一个执行php文件的Cron Job。

php文件从5 dkmiglm.csv(cdn.sandberg.world)把它附加到pricelist_206876.csv(在我们的系统中)

这两个CSV文件的列数不同。

5 dkmiglm.csv有这些应该导入到我们的价格表的列:

声明
  1. Partno
  2. <
  3. 名称/gh>重量
  4. SE: retailPriceIncVat
  5. sv: CategoryName

php代码如下:

`<?php
$current = file_get_contents("https://cdn.sandberg.world/feeds/5dkmiglm.csv");
$pricefile = "/pricelist_206876.csv"; 
file_put_contents($pricefile,$current); 
?>`

我将php文件与需要更新的价格表放在同一个文件夹中但是什么也没发生。Pricelist_206876没有更新。

Cron Job不在wp-admin面板中,而是在我们的web主机Inleed的控制面板(DirectAdmin)中。Cron Job命令如下所示:/usr/bin/php -q/dev/null "/home/goffero/domains/goffero.com/datafeedcode.php">

我尝试用各种方式修改PHP代码,但没有结果。realpath()无法工作。

我更改了文件的写/读/执行系统权限,但这并没有解决问题。

我有一个项目在Magento和产品的进口是做同样的方式你想要的。我们取一个包含10列或更多列的csv,但在本例中我们只导出数量和SKU。

下面是我们所做的:

<?php
// downloaded file path
$filesRoot = BP . '/pub/path/to/your/folder/';
// If folder doesn't exist, create it
if ( ! file_exists( $filesRoot ) ) {
mkdir( $filesRoot, 0777, true );
}
// their file
$fileIn = $filesRoot . '5dkmiglm.csv';
// your file
$fileOut = $filesRoot . 'pricelist_206876.csv';
$url = 'https://cdn.sandberg.world/feeds/5dkmiglm.csv';
// Download their csv in your environment
if ( ! file_put_contents( $fileIn, file_get_contents( $url ) ) ) {
die( 'error download file' );
}
$countLine  = 0;
$fileInOpn  = fopen( $fileIn, 'r' );
$fileOutOpn = fopen( $fileOut, 'w' );
while ( ( $line = fgetcsv( $fileInOpn ) ) !== false ) {
// position of each column
if ( $countLine == 0 ) {
$keyQty = array_search( 'qty', $line );
$keySku = array_search( 'sku', $line );
}
$newLineRev = array();
foreach ( $line as $key => $el ) {
if ( $key == $keyQty || $key == $keySku ) {
$newLineRev[ $keyQty ] = $line[ $keyQty ];
$newLineRev[ $keySku ] = $line[ $keySku ];
continue;
}
}
// Write in your file
fputcsv( $fileOutOpn, $newLineRev );
$countLine++;
}
fclose( $fileInOpn );
fclose( $fileOutOpn );

相关内容

  • 没有找到相关文章