-2

我正在尝试在我的浏览器中测试一个函数,但没有返回任何内容。我访问了链接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 文件”,也没有对我的文件进行任何更改。

4

2 回答 2

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();
于 2013-04-18T17:21:35.830 回答
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();
?>
于 2013-04-18T17:19:18.017 回答