我正在尝试在浏览器中测试一个函数,但没有返回任何内容。我访问了链接http://localhost/myfunctions.php?runFunction=writeJSON
我的职责是:
function writeJSON()
{
$myfile="testson.json";
$fileout=fopen($myfile,'w') or die("Fatal: Can't open JSON file for writing");
global $arrayForJSON;
if(isset($arrayForJSON))
{
fwrite($fileout,json_encode($arrayForJSON));
echo "done";
}
else echo "Error: could not write to JSON file";
fclose($myfile);
}
我在哪里弄错了,测试这个功能的正确方法是什么,或者我做错了什么?
该函数似乎没有运行,因为没有显示“完成”或“错误:无法写入JSON文件”,也没有对我的文件进行任何更改。
答案 0 :(得分:3)
如果你想通过get运行一个函数,你需要包含get ...
的代码//This is the function
function writeJSON()
{
$myfile="testson.json";
$fileout=fopen($myfile,'w') or die("Fatal: Can't open JSON file for writing");
global $arrayForJSON;
if(isset($arrayForJSON))
{
fwrite($fileout,json_encode($arrayForJSON));
echo "done";
}
else echo "Error: could not write to JSON file";
fclose($myfile);
}
// This will only call the function if ?runFunction=writeJSON
//is on the end of the URL
if(!empty($_GET["runFunction"])){
if($_GET["runFunction"] == "writeJSON"){
writeJSON(); // This line is the actual call to the function
}
}
但是,当然,如果您希望每次进入页面时都运行它,只需添加
writeJSON();
答案 1 :(得分:2)
好吧,你需要运行这个功能。在URL中传递它不会做任何事情。
<?
function writeJSON()
{
$myfile="testson.json";
$fileout=fopen($myfile,'w') or die("Fatal: Can't open JSON file for writing");
global $arrayForJSON;
if(isset($arrayForJSON))
{
fwrite($fileout,json_encode($arrayForJSON));
echo "done";
}
else echo "Error: could not write to JSON file";
fclose($myfile);
}
writeJSON();
?>