2011-10-18 28 views
1

我正在研究生成一个php文件的代码。将php代码写入.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; 
    }  

} 

回答

2

如果你有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); 
+0

谢谢。在阅读php.net中的heredoc时,我猜想我错过了nowdoc语法 – cyberfly

1

我的问题是没有办法写一个PHP代码到一个文件中的任何聪明的方法?

当然。

绝不以编程方式进行。