某些包含登录数据库页面代码的页面:
try
{
$conn=new PDO('mysql:host=localhost;port=3306;dbname=hpc' , 'xxx' , 'xxx');
}
catch(PDOException $e)
{
echo "connect failed!".$e->getMesage();
exit;
}
一些登录DB pagas代码的页面:
$conn = new PDO('mysql:host=localhost;port=3306;dbname=hpc' , 'xxx' , 'xxx');
$conn->setAttribute(PDO::ATTR_ORACLE_NULLS, true);
现在我只想使用一个DB.php来接管它们(“DB.php”);我试过了:
sed -i "/^try/^}$/,s/.*/include(\"DB.php\")/"g" *
和
sed -i "/^conn/true)\;$/,s/.*/include(\"DB.php\")/g *
但是他们失败了。我知道使用sed接管字符串:sed -i "s/A/B/g" *
。但我不知道如何将内容替换为字符串。谁可以帮助我?
答案 0 :(得分:0)
如果我没有误解, sed 解决方案可能
// replace try-catch block
sed -i '/^try/{:t;N;/exit;\n}$/!bt;s/.*/include("DB\.php");/}' *
// replace your second pattern
sed -i '/\$conn/{N;/true/s/.*/include("DB\.php");/}' *