运行PHP以获取google表单CSV
我正在使用下面的代码,它在一个普通的php文档中工作,但是当我在wordpress中使用它时,它就不工作了。我安装了一个插件,允许我在页面上运行php代码。感谢您的帮助运行PHP以获取google表单CSV,php,wordpress,csv,google-sheets,Php,Wordpress,Csv,Google Sheets,我正在使用下面的代码,它在一个普通的php文档中工作,但是当我在wordpress中使用它时,它就不工作了。我安装了一个插件,允许我在页面上运行php代码。感谢您的帮助 <?PHP function readCSV($csvFile){ $file_handle = fopen($csvFile, 'r'); while (!feof($file_handle) ) { $line_of_text[] = fgetcsv($file_handle, 1024
<?PHP
function readCSV($csvFile){
$file_handle = fopen($csvFile, 'r');
while (!feof($file_handle) ) {
$line_of_text[] = fgetcsv($file_handle, 1024);
}
fclose($file_handle);
return $line_of_text;
}
// Set path to CSV file
$csvFile = 'https://docs.google.com/spreadsheets/d/1oC88LWXn4SgvVzK3wQAojXk7UM5tDjuWuMZDAjQTGjw/pub?gid=0&single=true&output=csv';
$csv = readCSV($csvFile);
echo '<pre>';
print_r($csv);
echo '</pre>';
?>
<?php
print_r($csv[0][1]);//prints row 1, column 1
?> <?php
print_r($csv[0][2]);//prints row 1, column 1
?>
您的
fopen
函数调用外部文档
共享主机提供商通常在php.ini
中禁用允许\u url\u fopen
以停止远程文件包含
攻击
您需要使用cURL
取回数据。这是一个例子。我选择使用php://temp
stream存储返回的数据,因为本地不需要它。这将允许我们读取流指针,然后循环它,将每一行推入文本[]的$line\u
数组
替代和较少推荐的解决方案
查找并定位站点加载的
php.ini
,并将allow\u url\u fopen
修改为1
您的fopen
函数调用外部文档
共享主机提供商通常在php.ini
中禁用允许\u url\u fopen
以停止远程文件包含
攻击
您需要使用cURL
取回数据。这是一个例子。我选择使用php://temp
stream存储返回的数据,因为本地不需要它。这将允许我们读取流指针,然后循环它,将每一行推入文本[]的$line\u
数组
替代和较少推荐的解决方案
查找并定位您站点加载的
php.ini
,并将allow\u url\u fopen
修改为1
出现了什么问题?是否记录了任何错误?出现了什么问题?是否记录了任何错误?使用您的代码并得到以下错误:“解析错误:语法错误,意外的“}”在/home/advancedstorage/public_html/wp content/plugins/insert php/insert_php.php(48):eval()”第13行代码“@Eli抱歉。我在$line
后面漏掉了一个分号,现在更正了。谢谢@ohgodwhy,我让它工作了,但唯一不工作的是wordpress没有显示print\r($csv[0][1]);使用您的代码并在/home/advancedstorage/public_html/wp content/plugins/insert php/insert_php.php(48):eval()第13行的代码中出现此错误“@Eli抱歉。我在$line
后面漏掉了一个分号,现在更正了。谢谢@ohgodwhy,我让它工作了,但唯一不工作的是wordpress没有显示print\r($csv[0][1]);
function readCSV($url){
$fh = fopen('php://temp', 'w+');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FILE, $fh);
curl_close($ch);
rewind($fh);
while ($line = fgetcsv($fh, 1024)) {
$line_of_text[] = $line;
}
fclose($f);
return $line_of_text;
}