简体   繁体   中英

Including PHP functions from another file

I would like to access some functions defined in another PHP file, but that file also outputs content that I don't want to display.

Is there any way to access the functions without "running" the whole file? Perhaps by redirecting the output from that file to somewhere hidden?

<?php
ob_start();
require 'filename.php';
ob_end_clean();
?>

Eh you might be able to do something with using the output buffer and manually clearing contents, but why not just move the common functions into a common include? I usually shove common helper methods into their own file (which won't output anything).

The answers involving output buffering are correct, but you're solving the wrong problem at a rather fundamental level.

Grab those functions that are useful and move them to a different file. Then include that file from both the one you're working on now, and the one where they currently reside. Everything works, no weird hacks with output buffering.

You could sneakily buffer the include's output using ob_start() and drop it using ob_end_clean() . This works only if the script doesn't flush the output buffer itself.

The better way would be to extract the needed functions from the include, and put them into a separate file.

Well, you could capture the output of the file using, say, an Output Buffer then discarding it. However, any other global side effects (global variables set, files written, etc) would still occur. It would be much better to refactor that file to move the functions into their own include, which can be include ed by both.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM