2011-06-10 42 views
1

我有一个巨大的HTML文件,我想转换为一个变量输出。所以,像这样:转换一个巨大的HTML文件到PHP变量/回声

<div class="section"> 
    <h3>hey<? echo $anothervar ?></h3> 
    <input type="submit" id="submit" name="submit" value="Submit" class="button" /> 
</div> 

$myvar; 

    $myvar="<div class=\"section\"> 
       <h3>hey" . $anothervar . "</h3>"; 
    $myvar.=   "<input type=\"submit\" id=\"submit\" name=\"submit\" value=\"Submit\" class=\"button\" /> 
      </div>"; 

RYV。除了一个巨大的文件,其中有PHP插件,但我需要把它全部放在一个变量中传递,然后返回它。有没有一种自动化的方式来做到这一点(希望在Windows上使用NP ++之类的东西?),或者至少有一种方法可以实现这一点的自动化,而不是让我花费数小时甚至数小时的时间。

编辑:每个人都在辩论我为什么要这么做。这是快速的,也许无聊的回应;我正在为WordPress编写一个插件,它使用简码并用单个变量的输出替换它;如果只是回声(如我在给出的文件中所做的那样),则WP将短代码输出放置在与内容不同的地方。所以,是的,你可能不希望这样做,但是这样的原因(http://codex.wordpress.org/Shortcode_API#Overview):

当显示the_content时, 简码API将解析任何 注册简码如 “[my-shortcode]”,分开并解析 的属性和内容,如果有的话, 并传给它们相应的 短码处理函数。任何字符串 返回(未回显)的短代码 处理程序将插入后 正文代替短代码本身。

+0

你为什么要这么做? – 2011-06-10 20:56:26

+0

'那儿有PHP ......你认为'include'吗? – 2011-06-10 20:59:56

+0

我*会*说你可以使用(XML /正则表达式)解析器,但这将需要您的输入实际上正确格式化和有效。垃圾进入垃圾,就像他们说的那样。 您不能将变量保存在作为变量的字符串中。一旦解析器命中了变量,它就会得到该值,或者简单地将变量的符号(名称)存储在它的位置。 – colinross 2011-06-10 21:03:25

回答

4

我不认为这是一个好主意。如果只有单个变量回显,它看起来相当不错(尽管它不是一个HTML文件,而是一个PHP文件,并且您的示例<? echo $anothervar>既不是有效的HTML也不是PHP)。

看看PHP的output buffering如果你希望将结果存储在一个变量:

<?php 
    ob_start(); 
?> 
<!-- your stuff here --> 
<?php 
    $output = ob_get_clean(); 
    // Do something with output 
?> 
+1

'ob_get_clean'完成'ob_get_contents'和'ob_end_clean'。 – Halcyon 2011-06-10 21:04:04

+0

谢谢,改变了它。 – Daff 2011-06-10 21:06:05

+0

是的,我在那里改变了那个var,那是一个原本不在文件中的格式问题。 – 2011-06-10 21:16:26

1
ob_start(); 
include("myfile.html"); 
$var = ob_get_clean(); 
+0

OP不想将HTML文件读取为变量,而是将其放入PHP文档中,正确转义。 – konsolenfreddy 2011-06-10 20:59:28

+0

不,他没有。他只是希望用PHP值替代HTML。我的解决方案确实如此。 – Halcyon 2011-06-10 21:02:47

3

你也可以使用此...

$your_var = <<<EOF 

a bunch of html goes here 

EOF; 
+1

HEREDOC不允许可变插值iirc。 – colinross 2011-06-10 21:04:04

+0

然后添加一个评估!哦,是的:D(认真,不) – Halcyon 2011-06-10 21:04:40

+0

最后的评论证实了我的感觉,任何*给男人一条鱼*回答这个问题将是一个绝对的黑客和可怕的编码习惯。 : -/ – colinross 2011-06-10 21:13:04

0

请尝试此代码

<?php $output=''; 
     $output.='<div class="section">'; 
     $output.='<h3>hey<? echo $anothervar ?></h3>'; 
     $output.='<input type="submit" id="submit" name="submit" value="Submit" class="button" />'; 
    $output.='</div>'; 
    echo $output; 

    ?>