php - 根据databsse中的值创建文件
问题描述
我知道如何从 php 代码创建一个 php 文件。但我想根据从数据库中获取的值重命名文件。例如,如果值为 Blue,我希望文件名为 blue.php。我不知道该怎么做。
$filename = "blue.php"; //file i want to rename
$ourFileName = $filename;
$ourFileHandle = fopen($ourFileName, 'w');
$written = "
<html>
<body>
<?php
echo \"I like the color {$row['color']}!!!!\"; //value that i want the file name to be based on
</body>
</html>
";
fwrite($ourFileHandle, $written);
fclose($ourFileHandle);
解决方案
我将用于此示例PDO 连接
假设您在数据库中有一个表,就像这样。
表名:设置
+----+---------+---------------------+
| id | name | property |
+----+---------+---------------------+
| 1 | color | red |
+----+---------+---------------------+
创建文件
当您想使用新名称创建新文件时。您只需要row[id=1]
在数据库中进行编辑。
首先我们需要编辑row[id=1]
以创建一个新的文件名。
<?php
require_once 'connection.php';
$NewColor = 'green';
$UpdateDataBase = $conn->prepare("UPDATE settings SET property = ? WHERE id = 1");
$UpdateDataBase->execute([$NewColor]);
我们在数据库中更改
property
了行ID = 1
。从red
到green
。
我们现在green
要从我们的数据库中获取,以便创建新文件。
<?php
require_once 'connection.php';
// We gonna take a row from database where id = 1. Because that ID has our information.
$NewFileName = $conn->prepare("SELECT * FROM settings WHERE id = 1 LIMIT 1")
$NewFileName->execute();
// Now we will open foreach loop.
foreach($NewFileName->fetchAll() as $row){
$NewFile = 'path/to/the/file/'.$row['property'].'.php';
// now we gonna use fopen()
fopen($NewFile, 'w');
fclose($NewFile);
}
重新命名文件
现在我们要使用rename()
<?php
require_once 'connection.php';
$oldfile = 'path/to/the/file/red.php';
$RenameFile= $conn->prepare("SELECT * FROM settings WHERE id = 1 LIMIT 1");
$RenameFile->execute();
foreach ($RenameFile->fetchAll as $row){
$newfile = 'path/to/the/file/'.$row['property'].'.php';
// Now we gonna use rename()
rename($oldfile, $newfile);
}
但在你使用它之前,请检查一下使用 PHP 的“rename()”进行黑客攻击
推荐阅读
- visual-studio-code - 如何在 vscodium 的 dotnet core mvc 应用程序的断点处停止(在 Ubuntu 中使用 netcoredbg)?
- github - 是否有必要从我下载的 github 项目中使用 virtualenv?
- firebase - .apns 文件中的数据格式,用于在 iOS 模拟器中测试 Firebase 通知
- python - PYTHON:使用附魔库识别 Pandas 数据框中的非英语单词
- batch-file - 在 Windows 批处理文件中使用 ImageMagick 批处理图像
- highcharts - Highcharts 组织改变大小图像和位置
- python - 有没有办法让我的不和谐机器人一次与一个人一起使用?
- javascript - Angular - 在子组件中重新加载或刷新对象
- python-3.x - python升级后使用ubuntu终端的问题
- ms-word - Windows 10 Word 365 文件名时间戳自动化 w/o VBA