dba_replace
(PHP 4, PHP 5, PHP 7, PHP 8)
dba_replace — 替换或插入条目
cbemerine at gmail dot com ¶14 年前
QDBM 和 GDBM 似乎是唯一允许 dba_replace 正确工作的 DBA 处理程序。DBA 处理程序必须编译或构建到您正在使用的版本中。有关更具体的说明,请参阅 dba_handlers (https://php.net/manual/en/function.dba-handlers.php)
此外,当您在线搜索时,您会看到关于“安全性”问题的提及,据称与 dba_replace() 函数有关。在网上记录的每个“安全性”问题实例中,dba_open 函数都指定了“inifile”的 DBA 处理程序选项。DBA 处理程序“inifile”专门用于 ini 文件的管理。以下是与此“安全性”问题相关的 dba_open 和 dba_replace 代码片段
<?php
$source=dba_open("/www/about.ini", "wlt", "inifile");
dba_replace("HOME","/www/",$source);
?>
我还看到网上列出了使用 DB4 和 dba_replace 函数的错误。虽然我对这些报告持怀疑态度。不幸的是,我没有编译了 DB4 处理程序的数据库来检查 dba_replace 和 DB4 DBA 处理程序是否确实存在问题。至少您知道可能存在问题,并且可以在需要时进行检查。
假设在您正在使用的软件包构建时,“构建”或编译了正确的 DBA 处理程序到您的数据库中,那么 dba_replace() 和实际数据库文件可能没有问题。如果您遇到 dba_replace() 的问题,请确保构建了 DBA 处理程序 QDBM 或 GDBM。
您不能在同一个构建中同时构建 QDBM 和 GDBM,但是您可能可以在 QDBM 或 GDBM 中同时构建 INIFILE 和 FLATFILE。尚不清楚您是否可以在 QDBM 或 GDBM 中构建 db3 或 db4。似乎 DB4、CDB、INIFILE 和 FLATFILE 通常一起构建。
有关与 CDB 相关的 dba_handlers() 和 dba_open() 的用户贡献的注释,请参阅。