使用php从文件中获取特定文本

时间:2017-10-10 19:02:46

标签: php

我正在为我上一次大学校作业做一个cms,但我现在遇到了问题。我需要存储在另一个文件中的数据库的名称。该文件的php代码是:

<?php
try {
$db = new PDO ("mysql: host = localhost; dbname = name_that_I_need"; "user"; "pass");
$error = "false";
} catch (PDOException $e) {
$error = "true";
}
?>

我需要文字:“name_that_I_need”(没有引号)我怎么能用PHP做到这一点?

2 个答案:

答案 0 :(得分:0)

  1. 你不需要?&gt;在PHP文件的末尾。
  2. 通常人们将数据库设置存储在单独的.php文件中作为定义:
  3. <?php
    
    define('DATABASE_HOST',  'localhost'); # database host address (you can also use direct ip declaration)
    define('DATABASE_USER',  'root');      # database user
    define('DATABASE_PASS',  '1234');      # database user password
    define('DATABASE_NAME',  'name');      # database name
    define('DATABASE_PORT',  '3306');      # database port
    

    ...以这种方式编辑示例.php文件更好,并且在两个不同的地方只使用一个带有此信息的来源。

答案 1 :(得分:0)

正如user1597430所说,但最好把这种数据放在环境变量linux中

<?php

define('DATABASE_HOST',  getenv('DATABASE_HOST')); # database host address (you can also use direct ip declaration)
define('DATABASE_USER',  getenv('DATABASE_USER')); # database user
define('DATABASE_PASS',  getenv('DATABASE_PASS')); # database user password
define('DATABASE_NAME',  getenv('DATABASE_NAME')); # database name
define('DATABASE_PORT',  getenv('DATABASE_PORT')); # database port

当您在服务器中输入env

时,它应该是这样的
DATABASE_HOST=localhost
DATABASE_USER=user
DATABASE_PASS=password
DATABASE_NAME=mysql
DATABASE_PORT=3306

所以你可以像这样初始化你的PDO:

new PDO ("mysql: host = " . DATABASE_HOST . "; dbname = ". DATABASE_NAME; DATABASE_USER; DATABASE_PASS)