【发布时间】:2015-05-15 18:53:45
【问题描述】:
我需要打开一个包含 php 和 html 代码的文件并将一些声明的变量更改为用户选择的值:
文件开始:
<?php mb_internal_encoding("UTF-8"); ?>
<div class="redshop_product td"><!-- for <?php echo basename(__FILE__, '.php')?> //-->
<!-- REDshop entry for A Bigger Bundle /title --> <?php $outofstock=1; $explanation="Expected back in stock 12 June"; ?>
AND THEN LOTS OF HTML AND JAVASCRIPT WHICH MAKES UP THE ITEM DISPLAY
我需要打开文件,检查 $outofstock 和 $explanation 的值并用用户选择的任何值替换它们,然后用新值保存文件。我有一个功能
function get_string_between($string, $start, $end){
$string = " ".$string;
$ini = strpos($string,$start);
if ($ini == 0) return "";
$ini += strlen($start);
$len = strpos($string,$end,$ini) - $ini;
return substr($string,$ini,$len);
}
我用来从文件中选择字符串,并且对于普通的 html 和 javascript 非常有效。例如
get_string_between($contents, "<!-- REDshop entry for ", " /title");
会给你“更大的捆绑”。 但是我不知道如何让它与 php 声明一起使用。所以
$outofstock=get_string_between($contents, '<?php $outofstock=', ';');
什么都不返回(应该是 1)
这是有问题的代码部分:
$contents = strstr(file_get_contents("products/".$_POST['StockToggle'].".php"), ' -->', true);
$outofstock=get_string_between($contents, '<?php $outofstock=', ';'); $explanation=get_string_between($contents, '$explanation="', '";');
$productname=get_string_between($contents, "<!-- REDshop entry for ", " /title");
有什么想法可以实现我想要的吗?
【问题讨论】:
-
听起来你应该使用模板系统。
-
显示
get_string_between的定义。 -
谢谢@Barmar。刚刚这样做了!
-
$outofstock=get_string_between($contents, '<?php $outofstock=', ';');为我工作,它返回1。 -
strstr使它只返回-->之前的文件部分。所以$content没有分配。
标签: php file-get-contents