Любые советы по написанию php-кода в .php-файл? - PullRequest
1 голос
/ 18 октября 2011

Я работаю над кодом для создания 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 ]

2 голосов
/ 18 октября 2011

Если у вас 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);
1 голос
/ 18 октября 2011

У меня вопрос, есть ли более умный способ записать php-код в файл?

Конечно.

Никогда не делайте этого программно.

...