为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 preg_replace PHP 从文件中删除文本

如何使用 preg_replace PHP 从文件中删除文本

PHP
胡子哥哥 2021-11-13 16:30:59
我想从public function CreateUser最多删除文本//pfCreateUser。所以基本上我想删除函数CreateUser。例如test.php,我有一个名为的文件,在该文件中我有一个这样的文本。public function CreateUser(Request $request)    {        another code here, include a-zA-Z0-9 and special character...    } //pfCreateUserpublic function CreateCompany(Request $request)    {        another code here, include a-zA-Z0-9 and special character...    } //pfCreateCompany这是我尝试的$a = "test.php";$b = file_get_contents("test.php");file_put_contents($a, preg_replace("#public function CreateUser.*//pfCreateUser#m", "", $b));但它不起作用。我希望文件在删除文本后是这样的public function CreateCompany(Request $request)    {        another code here, include a-zA-Z0-9 and special character...    } //pfCreateCompany
查看完整描述

3 回答

?
叮当猫咪

TA贡献1776条经验 获得超12个赞

preg_replace对我来说工作正常,前提是我在 dot all 模式下使用它,并带有/s修饰符。我使用了以下模式:


public function CreateUser\(.*\/\/pfCreateUser\s*

示例脚本:


$output = preg_replace("/public function CreateUser\(.*\/\/pfCreateUser\s*/s", "", $input);

echo $output;

这打印:


public function CreateCompany(Request $request)

    {

        another code here, include a-zA-Z0-9 and special character...

    } //pfCreateCompany

请注意.*,由于 dot all 模式,将匹配换行符/s。


查看完整回答
反对 回复 2021-11-13
?
万千封印

TA贡献1891条经验 获得超3个赞

你可以在一行中用一个小正则表达式来做这个,然后把你想删掉的第一个和最后一个词:

preg_replace('/public[\s\S]+?pfCreateUser/', '', $string);


查看完整回答
反对 回复 2021-11-13
?
慕标琳琳

TA贡献1830条经验 获得超9个赞

file_put_contents($a, preg_replace("/^public function CreateUser[\s\S]*?pfCreateUser/", "", $b));


查看完整回答
反对 回复 2021-11-13
  • 3 回答
  • 0 关注
  • 153 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信