无法让PHP在HTML中的<textarea>标记内执行

时间:2018-04-23 04:49:43

标签: javascript php jquery html

&lt; p&gt;我正在使用&lt; a href =&#34; http://people.irisa.fr/Francois.Schwarzentruber/bibtextohtml/" rel =&#34; nofollow noreferrer&#34;&gt;此程序&lt; / a&gt;它读取我的本地参考bibtex文件并自动在我的HTML页面中格式化它们。这个程序相当简单,但某些地方不起作用,经过大量的调试我无法弄明白。&lt; / p&gt; &lt; p&gt;经过相当长的一段时间后,我在代码中将问题归结为此区域:&lt; / p&gt; &LT;预&GT;&LT;代码&GT; ... ... &lt; textarea hidden name =&#34; bibtex_input&#34; ID =&#34; bibtex_input&#34; cols = 50行= 20&gt;     &lt;?php echo file_get_contents(&#34; ref.bib&#34;); ?&GT; &LT; / textarea的&GT; &lt; div id =&#34; bibtex_errors&#34;&gt;&lt; / div&gt; &lt; div class =&#34; bibtex_template&#34;&gt;     &LT;李&GT;         &lt; a class =&#34; url&#34;&gt;&lt; span class =&#34; title&#34;&gt;&lt; / span&gt;&lt; / a&gt;&lt; br&gt;         &lt; span class =&#34; author&#34;&gt;&lt; / span&gt;&lt; br&gt;         &lt; span class =&#34; booktitle&#34;&gt;&lt; / span&gt;         &lt; span class =&#34;如果发布商&#34;&gt;             &lt; span class =&#34; publisher&#34;&gt;&lt; / span&gt;。         &LT; /跨度&GT;         &lt; span class =&#34; if pages&#34;&gt;           页。 &lt; span class =&#34; pages&#34;&gt;&lt; / span&gt;。         &LT; /跨度&GT;         &lt; span class =&#34; if year&#34;&gt;             &lt; span class =&#34; year&#34;&gt;&lt; / span&gt;&lt; / span&gt;         &LT峰; br&GT;         &lt; a class =&#34; bibtexCodeLink&#34;&gt;             [中文提供]         &LT; / A&GT;         &LT峰; br&GT;&LT峰; br&GT;      &LT; /锂&GT; &LT; / DIV&GT; &lt; ol id =&#34; bibtex_display&#34;&gt; &LT; /醇&GT;     &LT; / TD&GT; &LT; / TR&GT; &LT; TR&GT;     &LT; TD&GT;         &lt; hr /&gt;     &LT; / TD&GT; &LT; / TR&GT; &LT; /表&gt; &LT; /体&GT; &LT; / HTML&GT; &LT; /代码&GT;&LT; /预&GT; &lt; p&gt;似乎PHP无法在&lt; code&gt; textarea&lt; / code&gt;内执行标签出于某种原因。在&lt; code&gt; textarea&lt; / code&gt;之外标签PHP很好地回应了文件的内容,我可以在页面上看到它。在任何情况下,当在textarea标签内使用php时,我无法在HTML页面上看到格式化的输出,而是看到了这一点。 &LT; / p为H. &lt; p&gt;&lt; a href =&#34; https://i.stack.imgur.com/lz87l.jpg" rel =&#34; nofollow noreferrer&#34;&gt;&lt; img src =&#34; https://i.stack.imgur.com/lz87l.jpg" alt =&#34;在此处输入图像说明&#34;&gt;&lt; / a&gt;&lt; / p&gt; &lt; p&gt;这就是它的样子。&lt; / p&gt; &lt; p&gt;&lt; a href =&#34; https://i.stack.imgur.com/kDn5P.jpg" rel =&#34; nofollow noreferrer&#34;&gt;&lt; img src =&#34; https://i.stack.imgur.com/kDn5P.jpg" alt =&#34;在此处输入图像说明&#34;&gt;&lt; / a&gt;&lt; / p&gt; &lt; p&gt;&lt; strong&gt;我尝试了什么:&lt; / strong&gt;&lt; / p&gt; &LT; UL&GT; &lt; li&gt;&lt; p&gt; PHP正在运行。 phpinfo()显示PHP时的PHP版本 在页面上的任何其他位置调用。&lt; / p&gt;&lt; / li&gt; &lt; li&gt;&lt; p&gt;上面提到的JS脚本,jquery和样式表是 包含在标题中。&lt; / p&gt;&lt; / li&gt; &lt; li&gt;&lt; p&gt;脚本,html,php文件,样式表都具有正确的&lt; code&gt; 644&lt; / code&gt;或&lt; code&gt; 755&lt; / code&gt; &LT;代码&GT;搭配chmod&LT; /代码&GT;在他们。所以它不应该是权限问题(?)&lt; / p&gt;&lt; / li&gt; &lt; li&gt;&lt; p&gt;页面本身保存为&lt; code&gt; .php&lt; / code&gt;而不是&#39; html&#39;。&lt; / p&gt;&lt; / li&gt; &lt; li&gt;&#39; ref.bib&#39;文件的内容是正确的,并已在我上面链接的网站上测试过。它应该工作。&lt; / li&gt; &lt; li&gt;使用&lt; a href =&#34; https://www.freeformatter.com/html-validator.html" rel =&#34; nofollow noreferrer&#34;&gt;此网站&lt; / a&gt;验证我的HTML。我的HTML语法应该没有错误。&lt; / li&gt; &lt; li&gt;&lt; p&gt;控制台告诉我这个:&lt; / p&gt; &lt; p&gt; jQuery.Deferred异常:$(...)。size不是函数@&lt; a href =&#34; http://mywebsite.edu/~me/group/bibtextohtml.js:446: 9&#34; rel =&#34; nofollow noreferrer&#34;&gt; http://mywebsite.edu/~me/group/bibtextohtml.js:446:9&lt; / a&gt; l @&lt; a href =&#34; https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js:2:29373&#34; rel =&#34; nofollow noreferrer&#34;&gt; https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js:2:29373&lt; / a&gt; 一个/ HTTPS://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js:2:29677  未定义&LT; / p为H. &lt; p&gt; TypeError:$(...)。size不是函数[了解详情]&lt; / p&gt;&lt; / li&gt; &LT; / UL&GT; &LT p为H.;&LT;强&GT;问题:其中/强&GT;&LT; / p为H. &lt; p&gt;如何在上面链接的网站上显示它? PHP内部的textarea标签或其他内容是一个问题吗?&lt; / p&gt;

3 个答案:

答案 0 :(得分:1)

在社区的帮助下,根据评论做了一些实验后,我能够在浏览器中查看开发人员控制台,看到jquery出错了。简而言之,我使用的是jquery(3.x)的最新版本,并且我从我的问题中链接的网站上获取的工具使用的是不推荐使用的函数。我进入页面,查看了他们的来源,并使用了他们特定版本的jquery。它现在有效。

或者,我还测试了将已弃用的size()函数更新为.length,现在它可以使用最新的jquery

有关详细信息,请参阅:g.size() is not a function - Jquery Error

答案 1 :(得分:-1)

程序化PHP就像锤子一样智能,所以我很确定如果有任何内容它会显示,尽管它遵守HTML。除非你不告诉它,否则它甚至不会打扰页面中是否有任何html。

这看起来似乎微不足道但是请检查通过右键单击生成的页面源 - &gt;查看页面源并在那里检查,而不是只检查检查器。

Textarea只允许纯文本,我认为其他任何内容(例如html字符串)都会被您的浏览器丢弃。

答案 2 :(得分:-1)

您的代码具有正确的结构。有关闭标签会混淆textarea标签。

<textarea ...>
<?php echo htmlspecialchars(file_get_contents('...'));?>
</textarea>