包含 PHP 流中的代码

2022-01-25 00:00:00 stream include php

I'm wondering if it is at all possible to create a stream wrapper in order to load some code from an array into using something like the following

<?php include 'template://myarraykey/'; ?>

and have it work like doing a normal include from a file? The reason for asking is because I don't really want to store templates on the file system, they'll either exist in memcache or a database table and defiantly don't want to use eval().

Also I would assume I'll need to have allow_url_include set to on?

解决方案

I know this is an old question...but I think it's worth noting that you can do something like:

$content = '
  <?php if($var=true): ?>
    print this html
  <?php endif; ?>
';

Normally this would very cumbersome to eval, but you can do:

include "data://text/plain;base64,".base64_encode($content);

And it will parse it snappy like!

相关文章