PHP parse_ini_file 和 includes 不工作(Ubuntu 桌面 LAMP)

标签 php ubuntu

这里是新语言,PHP 对我来说是一种新语言。我正在尝试开发一个网络应用程序。为了保证安全,我试图将我的数据库登录凭据保存在一个简单的 ini 文件(称为 db.ini)中。

1) 我的系统运行的是 Ubuntu 18.04。我已经安装了 LAMP

2) 当我在下面粘贴的 myqli_connect 脚本中有登录凭据时,该脚本通过 mysqli_connect 和 mysqli_query 更新数据库,工作正常。请注意,为了进行故障排除,我会在成功连接时回显一条消息:

$db = 'my_db';
$db_use = 'my_root_user';
$db_pass = 'my_password';
$db_host = 'localhost:3306';

$conn = mysqli_connect($db_host, $db_use, $db_pass, $db);
if(! $conn) 
    {die('Could not connect connect: ' . mysqli_connect_error()) ;
} else
    {echo ("Success");
}

3) 出于安全原因,我创建了一个 db.ini 文件。虽然我打算稍后移动它,但我已将其存储在与我的 .php 脚本相同的目录中:(\var\www\html\my_site)。

这是 .ini 的读取方式

[database]
host = localhost:3306
username = my_root_user
password = my_password
dbname = my_database

3) 我试图通过以下方法解析这个文件。所有的 print_r 都失败了,更不用说打开数据库了,所以他们打不开。

parse_ini_file('db.ini') // failed
parse_ini_file('/var/www/html/my_site/db.ini'); // failed

4) 我已使用以下代码确认该文件存在于我的 php 中。

$filename = 'db.ini';

if (file_exists($filename)) {
    echo "The file $filename exists";
} else {
    echo "The file $filename does not exist";
}

5) 因此,导入似乎无法在我的设置 (Ubuntu LAMP) 上运行。

6) 在一个相关的问题上,我尝试将其作为“要求”,并将变量也保存为 db_config.php。即使文件存在,这也没有链接。

不用说,我已经束手无策了。有什么建议么?我感觉这是一个配置问题,脚本无法与 Apache 或我的 Linux 上的其他文件通信,但没有经验去哪里。

最佳答案

尝试使用这个 parse_ini_string .

代码

$filename = 'db.ini';

if (file_exists($filename)) {
    $db = parse_ini_string(file_get_contents($filename));
    var_dump($db);
} else {
    echo "The file $filename does not exist";
}

关于PHP parse_ini_file 和 includes 不工作(Ubuntu 桌面 LAMP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50454383/

相关文章:

php - 更新记录 codeigniter

php - MySQL operator SELECT 如何从相似的行中得到一个精确的行结果?

linux - 如何使用板载键盘的击键干净地杀死 Ubuntu 板载键盘

python - Pyqt5:像素图颜色问题

linux - 为什么我不能在 Linux 上更改 PCI 配置寄存器?

php/xpath : Getting the content in nested divs

php - 如果数组为 NULL,则没有 "Undefined offset"

php - 只过滤掉一些与SQL有共同点的参数

git - 如何将 Windows 凭据管理器与 ubuntu 连接

linux - netstat 没有显示udp 服务器的监听端口?