我可以将所有PRINT和ECHO输出重定向到PHP函数吗?

I've inherited some ancient code to paw through and figure out what's happening. Scattered throughout the spaghetti code are hundreds of echos and prints that are nearly impossible to follow.

I've been researching and googling using variations of STDOUT, but can't find anything that doesn't talk about using and alternative to PRINT/ECHO.

I'm looking for a way to effectively replace the PHP Echo/Print with my own function called something like "MyEcho" that will interrogate/log what's printing from where and when.

Is there a way to do this, or must I write the function, and replace all print/echo used throughout the code?

As the manual on echo states, its not realy a function but a language construct and therefor you cannot override it like you can with system function. (using namespace)

I think your best bet would be to simple use something like ecobyte replace text to replace echo and print with something else.

Just keep in mind that you can run into problems because parentheses are not required for echo and print but for your function they are. Also echo can allow multiple parameters using a ,, which could also break your own method.

I think there is not much left to do then a replace all and hope for the best or do it manually.

It seems that directly overloading echo may not be possible, but this other StackOverflow question may have some leads for you.

You could do a bulk search/replace where you replace echo with echo __FILE__ , __LINE__ ,

Use the output control functions, such as ob_start().