【问题标题】:Any tips on writing php code to a .php file?关于将 php 代码写入 .php 文件的任何提示?
【发布时间】:2011-12-09 23:08:31
【问题描述】:

我正在编写代码来生成一个 php 文件。

这是我编写 php 文件的代码示例

$myFile = "testFile.php";
$fh = fopen($myFile, 'w+') or die("can't open file");

$data = '<?php'. "\n\n";

$data.= '$datetime = date("Y-m-d H:i:s");'. "\n\n";

$data.= '$_POST = array_map(\'mysql_real_escape_string\', $_POST);'. "\n\n";

$data.= '?>';

fwrite($fh, $data);
fclose($fh);

此代码运行良好。我的问题是有没有更聪明的方法可以将 php 代码写入文件?例如,我有这个函数,我想写入 php 文件。像我现在正在做的那样一行一行地写所有的函数会很乏味。

function shorten_url($url)
{       
    $longUrl = $url;

    $apiKey = 'your_api_key_here';      

    $postData = array('longUrl' => $longUrl, 'key' => $apiKey);
    $jsonData = json_encode($postData);

    $curlObj = curl_init();

    curl_setopt($curlObj, CURLOPT_URL, 'https://www.googleapis.com/urlshortener/v1/url');
    curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($curlObj, CURLOPT_HEADER, 0);
    curl_setopt($curlObj, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
    curl_setopt($curlObj, CURLOPT_POST, 1);
    curl_setopt($curlObj, CURLOPT_POSTFIELDS, $jsonData);

    $response = curl_exec($curlObj);

    $json = json_decode($response);

    curl_close($curlObj);

    $tiny_url = $json->id;

    if(($response!=FALSE)&&(!empty($tiny_url)))
    {
        return $tiny_url;
    }
    else
    {
        return false;
    }       

}

【问题讨论】:

    标签: php file-io code-generation


    【解决方案1】:

    如果您的 PHP >= 5.3,使用 nowdoc syntax 会更方便:

    $data = <<<'EOD'
    <?php
    $datetime = date("Y-m-d H:i:s");
    $_POST = array_map('mysql_real_escape_string', $_POST);
    ?>
    EOD;
    
    echo htmlspecialchars($data);
    

    【讨论】:

    • 谢谢。我想我在 php.net 中阅读 heredoc 时错过了 nowdoc 语法
    【解决方案2】:

    我的问题是有没有更聪明的方法可以将 php 代码写入文件?

    当然。

    永远不要以编程方式进行。

    【讨论】:

      猜你喜欢
      • 2013-06-06
      • 1970-01-01
      • 1970-01-01
      • 2018-06-27
      • 1970-01-01
      • 2012-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多