2012-10-22 58 views
0

所以我出於某種原因或其他採用printf()echoprint安全地更改printf()以打印()?

我沒有任何格式的字符串需要printf($var);的替代品,這樣他們就可以(也應該)都變成print($var);

因爲他們都得到相同的語法printf($this.'that');我可以只是做一個文件夾範圍內的「找到&替換」安全地將printf(改爲print(

+2

爲什麼修理什麼不壞? – Matt

+0

當然,爲什麼不呢?最好的是使用基於正則表達式的修改工具。檢查'kfilereplace',爲我提供了不計其數的時間... – arkascha

+0

因爲事情確實中斷。不是「經常」,但是當某些東西停止工作時,我用'print'或'echo'替換'printf',如果這是問題,它通常會起作用。所以它'有效'我只是希望它更穩定 – Xhynk

回答

1

如果你打電話給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

+0

感謝您的好澄清!我很好奇,看看我得到的一些錯誤是由於字符串中的'%'...謝謝! – Xhynk

+0

不客氣!可能是這樣的:非引用輸入很容易產生這種奇怪的副作用。 – jimp

0

如果您確定在任何地方都不使用printf功能,並且打印已足夠,則可以使用簡單的搜索/替換將其全部替換。