2

这是当前的 PHP,不知道如何开始转换为 Coldfusion。我需要在我的coldfusion服务器上发布这个。

<?php
/**
 * Saves POST input as an XML file and returns a JSON response
 */

$xmlString;

if (isset($_POST['xmlString'])){
$filename  = $_POST['xmlFilename'];
$xmlString = stripslashes($_POST['xmlString']);

$newFile = "_data/".$filename.".edit.xml";

//write new data to the file, along with the old data 
$handle = fopen("../".$newFile, "w"); 
if (fwrite($handle, $xmlString) === false) { 
    echo "{error:\"Couldn't write to file.\"}";  
} 
else {
    //echo "{filename:\"".$newFile."\"}";
    echo "success:::$newFile:::$xmlString";
}
    fclose($handle);    
}
?>
`
4

1 回答 1

7

我不太了解 PHP,但我可以推断一些东西,我可以谷歌搜索一些东西。如果我弄错了,有人可以纠正我。

  • isset():虽然不是直接类比,但应该使用structKeyExists()来进行变量检查。isset()主要直接等同于isDefined(),但isDefined()由于它倾向于返回误报,因此应尽可能避免;
  • $_POST 变量与 FORM 范围的变量相同;
  • stripslashes()取消转义字符串中转义引号的反斜杠;
  • .(dot) 是字符串连接运算符,就像&在 CFML 中一样;
  • fopen()打开一个文件,“w”参数打开它进行写入。就像CFML中fileOpen()的等效用法一样。
  • fwrite()写入所述文件。
  • === false位检查以查看是否存在文件写入错误,该错误在 CFML 中没有直接等效项,所以我想类比是在文件操作周围放置一个 try/catch(无论如何都应该这样做)。
  • echo()相当于writeOutput()(或只是 <cfoutput>);
  • fclose()与fileClose()相同。

就是这样:我认为其余部分是不言自明的。

我要说的一件事是(正确地〜)猜测所有这些东西很容易,或者谷歌搜索它。我刚刚搜索了“php fopen”、“php dot operator”等(主要是为了获取文档的链接)。所以你也许可以自己做这件事。

于 2012-11-30T16:29:54.027 回答