我有一堆PHP编码的网站,最近已被转移到PHP 5.4服务器,他们正在抛弃弃用警告和错误。
有没有办法大规模找到&用正确的名称替换函数名称?例如,我希望能够用unset替换session_unregister('someVar')的所有实例($ _ SESSION ['someVar'])...
我应该使用正则表达式还是有其他方式?
答案 0 :(得分:1)
对于此特定示例,您可以使用sed
,如下所示:
echo "session_unregister('someVar')" | sed 's/session_unregister(/unset\($_SESSION[/;s/)/])/'
更灵活的是使用C预处理器。假设您的php源文件名为my.php
。添加扩展程序.h
,使其成为my.php.h
。在文件的开头,插入:
#define session_unregister(X) unset($_SESSION[X])
假设该文件包含示例中的行:session_unregister('someVar')
像这样运行预处理器:
cc -E my.php.h
现在你应该看unset($_SESSION['someVar'])
(加上一些你不想要的额外垃圾)。
请注意,这只是回答您的特定问题,但如果没有更详细的测试,我不会推荐它。