0

如何只更改 php 文件的一部分。实际上在现有的 php 文件中添加一个变量或更改一个变量。我已经尝试如下,但这会删除所有内容并仅回显文本“我爱 PHP”。

$myFile = '../new_folder_name/index.php'; 
$myContent = 'I love PHP'; 

file_put_contents($myFile, utf8_encode($myContent));

例如,我想添加一个名为 $test 的变量,它等于 10。$test="10";或者将已经存在的变量更改$test为 10。

4

2 回答 2

1

我正在用 php 文件创建 php 文件

<?php
$dir = "../new_folder_name";

$file_to_write = "index.php";

$content_to_write = '


PHP CODE COMES HERE
$test= GET ('SOMETHING')


';

if( is_dir($dir) === false )
{
mkdir($dir);
}

$file = fopen($dir . '/' . $file_to_write,"w");

fwrite($file, $content_to_write);

fclose($file);

include $dir . '/' . $file_to_write;
?>

我希望每个文件都有不同的 $test 变量值。我希望在创建文件后能够更改创建文件中变量的值

于 2013-10-16T14:54:01.930 回答
0

试试这个添加新内容

$myFile = '../new_folder_name/index.php'; 
$myContent = 'I love PHP';
$file=fopen($myFile,"a");
fputs($file,$myContent);
fclose($file);

为了使用变量,我们需要将 php 文件作为普通文本文件来处理

function get_str_btwn($string, $start, $end)//an function to get string between two string in an string
{
    $string = " " . $string;
    $ini    = strpos($string, $start);
    if ($ini == 0)
        return "";
    $ini += strlen($start);
    $len = strpos($string, $end, $ini) - $ini;
    return substr($string, $ini, $len);
}
$file=file_get_contents($myFile);
if(substr_count($file,"$myContent"))
$file=str_ireplace(get_str_btwn($file,"$myContent =",";"),"I love PHP",$file);//Assuming format of php file is $myContent is initialized like $myContent="something"; 
else
$file=str_ireplace("<?php","<?php $myContent = 'I love PHP';",$file);

请注意,此代码非常敏感,可能会导致生成的 php 文件出错,除非您确定 php 文件的格式,否则不建议经常使用。

于 2013-10-16T14:58:51.053 回答