我可以选择文件的一行(例如 dummy.php )并将其替换为存储在变量中的文本,名为$currentdate
,但我想选择几行,并用几个变量替换它们。例如:
$site_name
,
$URL
在第4行,
$protocol
,
$author
,
$description
和
第12行$currentdate
。
我已经制作了这段代码,取代了第二行:
$currentdate = date('d F Y');
$filename = getcwd() . "/dummy.php";
$date_line = 1;
$lines = file( $filename , FILE_IGNORE_NEW_LINES );
$lines[$date_line] = "$currentdate";
file_put_contents( $filename , implode( "\n", $lines ) );
我重复一下这个问题,如何在几行中添加几个变量? 此问题中给出了示例变量和行号。 此外,我已经制作了一个代码,但我不知道它是否会起作用。我无法尝试将此代码添加到我的项目文件中,因为我害怕我的代码更糟糕并且禁用其他代码,这些代码也位于该页面中。 这是未经测试的代码:
$site_name_line = 1;
$URL_line = 3;
$protocol_line = 5;
$author_line = 7;
$description_line = 9;
$currentdate_line = 11;
$lines = file( $filename , FILE_IGNORE_NEW_LINES );
$lines[$site_name_line] = "$site_name";
$lines[$URL_line] = "$URL";
$lines[$protocol_line] = "$protocol";
$lines[$author_line] = "$author";$lines[$description_line] = "$description";$lines[$currentdate_line] = "$currentdate";
file_put_contents( $filename , implode( "\n", $lines ) );
答案 0 :(得分:1)
我自己找到了答案。我没想到,我可以。但我做到了。这是整个PHP代码:
from django.contrib.auth.models import User
from django import forms
class UserForm(forms.ModelForm):
password = forms.CharField(widget=forms.PasswordInput)
class Meta:
model = User
fields = ['username', 'email', 'password', 'address', 'phone_number']
答案 1 :(得分:0)
/**
* Replace lines with given content.
*
* $substitutions array should look
* [
* 1 => "new first line content",
* 4 => "new fourth line content",
* ]
*
* @param string $filename
* @param array $substitutions
*/
function replaceLines($filename, array $substitutions) {
$lines = file($filename);
foreach ($lines as $lineNumber => $lineContent) {
if (isset($substitutions[$lineNumber])) {
$lines[$lineNumber] = $substitutions[$lineNumber];
}
}
file_put_contents($filename, $lines);
}
当然,这并不能处理所有可能的边缘情况,例如,当您无法访问该文件或者您在替换数组中提供不存在的行时。