我想随机显示一个PHP代码,所以我有
<?php
// load the file that contain thecode
$adfile = "code.txt";
$ads = array();
// one line per code
$fh = fopen($adfile, "r");
while(!feof($fh)) {
$line = fgets($fh, 10240);
$line = trim($line);
if($line != "") {
$ads[] = $line;
}
}
// randomly pick an code
$num = count($ads);
$idx = rand(0, $num-1);
echo $ads[$idx];
?>
code.txt包含类似
的行<?php print insert_proplayer( array( "width" => "600", "height" => "400" ), "http://www.youtube.com/watch?v=xnPCpCVepCg"); ?>
Proplayer是一个显示视频的wordpress插件。 code.txt中的代码运行良好,但是当我使用code.txt中的选择行时则不行。而不是我得到的完整的PHP行:
"width" => "600", "height" => "400" ), "http://www.youtube.com/watch?v=xnPCpCVepCg"); ?>
如何让echo显示php代码,而不是php代码的txt版本?
答案 0 :(得分:1)
尝试使用htmlentities()
来逃避php代码。类似的东西:
$string = '<?php print insert_proplayer( array( "width" => "600", "height" => "400" ), "http://www.youtube.com/watch?v=xnPCpCVepCg"); ?>';
echo htmlentities($string);
答案 1 :(得分:0)
使用eval:http://php.net/eval。
修改强>
或者更好的是,使用包括。这可以是if-else语句,switch语句,数组或可以从选项中进行选择的任何内容。示例code.php:
<?php
if ($i == 1) // use better variable name
print 'blah blah blah';
else if ($i == 2)
print 'blah blah blah';
else if ($i == 3)
print 'blah blah blah';
// ...
else if ($i == $max)
print 'blah blah blah 4';
?>
致电页面:
<?php
$max = 5; // set max to however many statements there are
$i = rand(1, $max);
include('code.php');
?>