Php 安全地将printf()更改为print()?
因此,出于某种原因,我采用了使用Php 安全地将printf()更改为print()?,php,printing,printf,echo,Php,Printing,Printf,Echo,因此,出于某种原因,我采用了使用printf()替代echo或print 我没有任何需要printf($var)的格式化字符串,因此它们可以(并且应该)全部转换为打印($var) 因为它们都有相同的语法printf($this.that')我可以只做一个文件夹范围的“查找和替换”来更改printf(到print)吗(安全?如果你确信你没有在任何地方使用printf功能,而且print已经足够了,那么你可以用一个简单的搜索/替换来替换它。如果你对printf的调用不需要格式化,你会遇到问题,例如,
printf()
替代echo
或print
我没有任何需要printf($var)的格式化字符串代码>,因此它们可以(并且应该)全部转换为打印($var)代码>
因为它们都有相同的语法printf($this.that')
我可以只做一个文件夹范围的“查找和替换”来更改printf(
到print)吗(
安全?如果你确信你没有在任何地方使用printf功能,而且print已经足够了,那么你可以用一个简单的搜索/替换来替换它。如果你对printf
的调用不需要格式化,你会遇到问题,例如,它们真的应该被更改为print
例如,如果对printf
的输入包含%
字符,则会出现一个错误,即参数字符串格式不正确
$something = 'Results: 10% complete.';
print($something);
printf($something); // ERROR: printf() thinks it should replace "% c"
// with an integer not passed as a second argument
printf('%s',$something); // Pass unquoted input as a formatted argument
所以,基本上,如果您的代码从未使用过有意识的格式化输入的printf
,您将受益于代码中的查找/替换,以将所有这些调用转换为print,当然,为什么不呢?最好是使用基于正则表达式的修改工具。检查kfilereplace
,为我提供了无数次的服务……因为事情确实发生了。不是“经常”,但当某些东西停止工作时,我用print
或echo
替换printf
,如果这是问题的话,它通常是有效的。所以它“有效”我只想它更稳定,这样它们就可以(而且应该)全部变成打印($var);
[需要引用]谢谢你的澄清!我很想知道我收到的几个错误是否是因为字符串中有一个%
。。谢谢!不客气!可能是这样的:不带引号的输入很容易产生这样奇怪的副作用。