天道酬勤,学无止境

Javascript string variable that contains PHP code

I basically just want to append a javascript variable to an HTML div with JQuery. However I need to append some PHP code as a string, it doesn't need to execute it just needs to show up as a plain old string string.

The following code doesn't seem to append because I think it is still recognized as PHP syntax.

var script = '<?php wp_list_pages(); ?>';
divName.innerHTML = script;

Any help would be much appreciated.

评论

Just a guess... replace the php brackets with HTML entities (&lt; and &gt;) so it will not be interpreted as PHP code (if you run the file containing the JS through PHP) nor as strange HTML code (the browser searches for brackets as html tags, remember...) by the browser.

Wrap it in CODE tags, like this:

var script = '<code><?php wp_list_pages(); ?></code>';

You probably should escape the "hot" HTML tokens in the PHP text:

div.innerHTML = script.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');

You need to simply escape the string with HTML entities (&lt; and &gt;)

IMPORTANT: I hope all you're doing here is trying to display the PHP code. Please don't try anything funky where PHP code is passed in a form's field back to the server and executed via eval() or somesuch. That would be an unimaginably terrible idea. Anytime you give the client access to code that will be executed on the server, you open yourself up to all kinds of exploits. Your server will be forfeit. Do not collect $200. Game over. Fail.

PHP is executed before the page is sent to the browser, so you can go to that page, open its source and see if in that line you see what you need to see, like:

var script = 'the content you expect to see';

if not, tell us what you see.

If you are looking for a String variable to execute PHP code try looking here instead. I mention this because this was what I was looking to do and this question came up.

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 将多行php字符串传递给javascript函数/变量(passing php string with multiple lines to a javascript function/variable)
    问题 我正在其他人的网站上工作,它的逻辑非常愚蠢! 无论如何,有一个php变量,其中包含一个来自数据库的字符串。 $x = ' aaaa bbb ccc gggg '; 并且我需要将此字符串提供给javascript函数: <script> var x = "<?php echo $x ; ?>"; some_function(x); </script> 如您所知,我最终会遇到一个错误,因为javascript变量不能包含多行,而不能将它们像这样连接在一起: var x = ' i '+ ' have '+ ' different lines'; 我怎样才能做到这一点? 它是否删除行或正确设置格式都没有关系,我只想摆脱此错误。 回答1 将字符串传递到json_encode中以正确对其进行转义。 如果要输出到HTML文档,请确保将JSON_HEX_TAG作为选项的一部分传递,以转义<和>并防止恶意用户尽早结束</script>标记并引入XSS攻击。 回答2 试试这个 var JsString = "<?php echo str_replace(array("\n","\r","\r\n"),'','YOUR MULTI LINE STRING');?>"; 回答3 如果绝对必须这样做,则可以在JavaScript中使用模板文字来避开此问题。 它们可以是多行的,所以您可以
  • javascript equivalent of php $$ dollar dollar
    I have declared a local variable named cont in a function named validate. I am calling a function process from inside validate. I am sending the string 'cont' as argument to validate function. In the process function using the string 'cont' i want to access the javascript local variable's value like window['cont']. But i get undefined. What i am trying to do is trying to access variables like $GLOBALS in php or $$. Here is an example of what i did. <script> function process(str) { alert(window[str]); } function validate() { var cont='once there lived a king named midas'; process('cont') }
  • How to pass PHP variable as FlashVars via SWFObject
    I am trying to take a PHP variable and pass it along to Flash via Flash vars. My end goal is to pass a string formatted as XML to Flash, but because I'm struggling I've stripped everything down to the basics. I'm just trying to pass a simple PHP string variable to Flash via FlashVars with SWFObject but something isn't right. The page won't load when I try to pass the variable inside of php tags, but it will load if I just pass a hard coded string. The basic structure of my page is that I have some PHP declared at the top like so: PHP <?php $test = "WTF"; ?> Some HTML (excluded here for
  • 如何通过 SWFObject 将 PHP 变量作为 FlashVars 传递(How to pass PHP variable as FlashVars via SWFObject)
    问题 我正在尝试获取一个 PHP 变量并通过 Flash 变量将其传递给 Flash。 我的最终目标是将格式化为 XML 的字符串传递给 Flash,但因为我很挣扎,所以我已经将所有内容都剥离到基础知识。 我只是想通过 FlashVars 和 SWFObject 将一个简单的 PHP 字符串变量传递给 Flash,但有些不对劲。 当我尝试在 php 标签内传递变量时,页面不会加载,但如果我只是传递一个硬编码字符串,它就会加载。 我的页面的基本结构是我在顶部声明了一些 PHP,如下所示: PHP <?php $test = "WTF"; ?> 一些 HTML(为了简单起见在此排除),然后将 JavaScript SWFObject 嵌入到我的 HTML 中: <script type="text/javascript" src="js/swfobject2.js"></script> <script type="text/javascript"> // <![CDATA[ var swfURL = "swfs/Init-Flash-PHP.swf"; var flashvars = {}; flashvars.theXML = <?php print $test ?>; var params = {}; //params.menu = "false"; params.scale =
  • 在 JSON 中使用 Javascript 中的 PHP 变量 [重复](Using PHP Variables in Javascript with JSON [duplicate])
    问题 这个问题在这里已经有了答案: 将 PHP 字符串传递给 JavaScript 变量(并转义换行符)[重复] (14 个回答) 将 JSON 从 php 传递到 javascript (4 个回答) 7年前关闭。 <?php $heros=array("Spiderman","Batman","Superman"); ?> <script type="text/javascript"> var heros = <?php echo $heros;?> // I don't want to do this. for(i=0; i<3; i++) { if(heros[i]=='Spiderman') { alert('Hey! I am Spiderman.'); } } </script> 我想在 javascript for 循环中使用一个 php 数组,但我不想重新打开<script></script>标签内的 php 标签。 我如何在 javascript 中使用 php 变量? 回答1 var heros = <?php echo json_encode($heros);?> // You have to do this. 如果您真的不想在 JS 中打开 php 标签,则必须向服务器发出 ajax 请求并异步获取数据。 然后你的代码看起来像这样(使用 jQuery
  • 如何将变量和数据从PHP传递到JavaScript?(How do I pass variables and data from PHP to JavaScript?)
    问题 想要改善这篇文章吗? 提供此问题的详细答案,包括引文和为什么您的答案正确的解释。 答案不够详细的答案可能会被编辑或删除。 我在PHP中有一个变量,我的JavaScript代码中需要它的值。 如何将变量从PHP转换为JavaScript? 我有看起来像这样的代码: <?php ... $val = $myService->getValue(); // Makes an API and database call ?> 我有需要val并遵循以下内容的JavaScript代码: <script> myPlugin.start($val); // I tried this, but it didn't work <?php myPlugin.start($val); ?> // This didn't work either myPlugin.start(<?=$val?> // This works sometimes, but sometimes it fails </script> 回答1 实际上,有几种方法可以做到这一点。 一些需要比其他更多的开销,而有些则被认为比其他更好。 没有特别的顺序: 使用AJAX从服务器获取所需的数据。 将数据回显到页面中的某个位置,然后使用JavaScript从DOM获取信息。 将数据直接回显到JavaScript。 在本文中
  • PHP 生成的 javascript 和引号(PHP-generated javascript and quote marks)
    问题 我在我的 PHP 代码中生成了一些 javascript,我需要将一些 php 变量分配给 javascript 变量。 不幸的是,有时我的 PHP 变量包含引号。 例如: $foo = "'Dis here be a \"string\""; print "<script type='text/javascript'>var foo = '{$foo}';</script>"; 将生成一个 javascript 错误,因为生成的 javascript 将如下所示: <script type='text/javascript'>var foo = '"'Dis here be a \"string\"'; 我知道我可以在 $foo 上使用正则表达式将所有'标记替换为\'但是由于各种原因这很难。 除此之外还有什么我可以做的吗? 类似于 perl q()函数的东西...... 回答1 试过这样做吗? $foo = "'Dis here be a \"string\""; echo '<script type="text/javascript">var foo = "'.addslashes($foo).'";</script>'; 请参阅:http://php.net/manual/en/function.addslashes.php 回答2 我使用 json_encode()。
  • 在 Javascript 中将 URL 作为 GET 参数传递(Passing a URL as a GET parameter in Javascript)
    问题 我正在尝试制作一个使用用户当前 URL 的书签,有点像使用此 javascript 代码的 tinyURL 书签 javascript:void(location.href='http://tinyurl.com/create.php?url='+location.href) 所以我复制了同样的东西并制作了 javascript:void(location.href='http://mywebsite.com/create.php?url='+location.href) 然后我使用: $url=$_GET['url']; 取回它。 问题是,如果我使用的 url 已经在 url 中有一些 get 样式信息,它会把一切搞砸。 例如,如果我在: http://www.google.ca/webhp?um=1&hl=en&safe=off '_GET' 代码将 $url 设置为 http://www.google.ca/webhp?um=1 所以我认为 google URL 中的信息弄乱了我所有的 URL 解析,我想我做的事情非常不正确,或者有人对此有一个非常优雅的解决方案。 我应该怎么办? 请帮忙 回答1 URL 具有指定的格式。 之后的那部分? ,或者更确切地说是介于两者之间? #如果存在,则称为查询字符串。 它包含一个键值对列表 - 变量名、 =字符和值。 变量由&分隔:
  • 如何将 PHP 变量传递给 javascript?(How can I pass a PHP variable to javascript?)
    问题 我想使用 PHP 变量作为 javascript 变量 - 特别是我想使用 PHP 变量 session_id(); 并将其用作 javascript 变量。 <?php $php_var = session_id(); ?> <script language="JavaScript" type="text/javascript"> js_var = <?php echo($php_var ?>; </script> 这似乎对我有用,但没有人能提出更好的方法吗? 回答1 我能想到的最好的方法是这样的: <?php $php_var = session_id(); ?> <script type="text/javascript"> var js_var = <?php echo json_encode($php_var); ?>; </script> PHP 的json_encode -function 始终生成有效的 JavaScript,如果您只是输出随机值,则无法确保。 如果您决定不使用json_encode() ,您至少应该用引号将 php-value 括起来以防止语法错误。 注意逃跑! <?php $php_var = session_id(); ?> <script type="text/javascript"> var js_var = "<?php echo
  • 在同一页面上显示PHP表单验证结果(Display PHP Form Validation Results on Same Page)
    问题 我敢肯定,最初的反应将是:“这个人没有Google吗?” 是的,我承认这确实是一个非常基本的概念,并且我尝试并尝试将其包裹住,查找有关该主题的各种帖子和文章,等等,但无济于事。 也许您可以指出正确的方向? 我有一个基本的联系表单(contact.html),该表单与外部PHP脚本(contact.php)一起运行。 这是HTML表单代码: <form id="form1" action="contact.php" method="post"> <div class="form1"> <label>Your Name:</label> <span><input type="text" name="name" /></span> </div> <div class="form1"> <label>Your School:</label> <span><input type="text" name="school" /></span> </div> <div class="form1"> <label>Phone Number:</label> <span><input type="text" name="phone" /></span> </div> <div class="form1"> <label>E-Mail Address:</label> <span><input
  • 如何在JavaScript中插入大量HTML?(How to insert a large block of HTML in JavaScript?)
    问题 如果我有一个带有许多标签的HTML块,如何将其插入JavaScript? var div = document.createElement('div'); div.setAttribute('class', 'post block bc2'); div.innerHTML = 'HERE TOO MUCH HTML that is much more than one line of code'; document.getElementById('posts').appendChild(div); 我该怎么办? 回答1 此答案不使用Internet Explorer不支持的反引号/模板文字/模板字符串( `` )。 使用HTML + JavaScript: 您可以将HTML块保留在HTML代码内的不可见容器(如<script> )中,然后在JS中在运行时使用其innerHTML 例如: var div = document.createElement('div'); div.setAttribute('class', 'someClass'); div.innerHTML = document.getElementById('blockOfStuff').innerHTML; document.getElementById('targetElement')
  • 如何将php放入JavaScript?(How to put php inside JavaScript?)
    问题 我已经尝试过(但无法正常工作): <?php $htmlString= 'testing'; ?> <html> <body> <script type="text/javascript"> var htmlString=<?php echo $htmlString; ?>; alert(htmlString); </script> </body> </html> 这是我用于此目的的教程: 回答1 试试这个: <?php $htmlString= 'testing'; ?> <html> <body> <script type="text/javascript"> // notice the quotes around the ?php tag var htmlString="<?php echo $htmlString; ?>"; alert(htmlString); </script> </body> </html> 当您遇到此类问题时,一个好主意是检查您的浏览器是否存在JavaScript错误。 不同的浏览器有不同的显示方式,但是需要一个javascript控制台或类似的东西。 另外,检查浏览器查看的页面来源。 有时,初学者对字符串中的引号感到困惑:在PHP部分中,您为$htmlString分配了'testing' 。 这会将字符串值放入该变量内,但该值中没有引号
  • 服务器端代码与客户端代码混合 - 最佳实践(server side code mixed with client side code - best practices)
    问题 在给定的 php 脚本中,我有以下内容: <script> function showMember() { return $.ajax({ //Perform an asynchronous HTTP (Ajax) request. type: 'get', //A string containing the URL to which the request is sent. url: '<?php echo $this->createUrl('member'); ?>', ... 这有效,如果我把它放在 php 文件中。 但这似乎不是组织事物的好方法,我希望将所有这些代码放在一个单独的 .js 文件中。 处理这些情况的正确方法是什么? 回答1 我们使用两种方法使在服务器端创建的数据可供客户端访问: 1) '数据传输' 对象,由服务器端脚本填充。 例如: PHP: <?php $data = [ 'urls' => [ 'createSomething' => $this->createUrl($from, $something), // ... ], 'labels' => [ 'createSomething' => $this->cms($labelName), // .. ], ] ?> <script> var dto = <?= json_encode($data
  • 如何使用PHP输出JavaScript(How to output JavaScript with PHP)
    问题 我是PHP新手。 我需要使用PHP输出以下JavaScript。 这是我的代码: <html> <body> <?php echo "<script type="text/javascript">"; echo "document.write("Hello World!")"; echo "</script>"; ?> </body> </html> 但是它显示了错误: 解析错误:语法错误,意外的T_STRING,期望为','或';' 在第4行的/var/www/html/workbench/person/script.php中 谁能帮忙吗? 我还需要一些有关如何在应用程序中使用PHP,HTML和JavaScript的简单教程。 回答1 您应该在PHP字符串中转义JavaScript字符串定界符。 您正在对PHP和JavaScript字符串使用双引号。 尝试像这样: <html> <body> <?php // Here, we use single quotes for PHP and double quotes for JavaScript echo '<script type="text/javascript">'; echo 'document.write("Hello World!")'; echo '</script>'; ?> </body> </html>
  • 用 php 回显 javascript 是不好的做法吗(Is it bad practice to echo javascript with php)
    问题 我有一个使用 Listener 类的 php 应用程序,它基本上只是使用 jquery 设置一个 ajax 请求(下面的示例)。 但出于某种原因,回应 javascript 似乎不雅。 为要传递给的 javascript 构建单例类(这可能会引入耦合)还是像我现在所做的那样只回显脚本是更好的做法? 这是我正在做的代码片段。 <?php $script = " <script> $(document).ready(function(){ $('".$trigger."').".$action."(function() { ".$js_variables." var ajax_load = ''; var loadUrl = '".$this->controller_path."'; var action = $(this).attr('id'); $('".$this->parent."') .hide(2) .html(ajax_load) .load(loadUrl, {action: action, ".$post_mapper."}) .fadeIn(800); }); }); </script> "; echo $script; ?> 编辑:使用单例类还允许我只使用$(document).ready()或快捷版本$(function(){})一次
  • PHP返回的JSON对象可以包含日期对象吗(Can a JSON object returned by PHP contain a date object)
    问题 有没有办法在 PHP 中创建一个包含 javascript date对象的 JSON 对象? json_encode是否会自动将 PHP 的DateTime转换为 Javascript 的date ? 回答1 您可以将日期/时间作为 UNIX 时间戳传递,该时间戳是一个整数,JSON 中本机支持的数据类型。 PHP 中的 DateTime 有一个“getTimestamp()”函数,它会给你那个值。 回答2 JavaScript Date对象不是有效的 JSON,只能在野外看到,因为很多人使用成熟的eval()解析他们的 JSON。 一个简单的、人类可读的替代方法是以Date.parse()支持的格式将日期作为字符串发送。 你的 JSON: { date: '<?php echo date("r", $myDate); ?>' } 你的 JavaScript: var myDateObj = new Date(Date.parse(myJSON.date)); 来源:http://json.org/ - 有关有效 JSON 数据类型的列表,请参阅右侧的框。 回答3 简短的回答:没有。 JSON 只是文本,所有值都是数组、对象、数字、字符串、布尔值或 null。 在这种情况下,“对象”基本上只是一个 PHP 数组——它不能有方法。 您需要手动将日期(将是字符串)转换为日期。
  • Javascript在PHP变量中获取屏幕宽度(Javascript to get screen width in PHP variable)
    问题 我有一个响应式站点,当站点位于其他导航链接旁边的“桌面”视图(屏幕可用宽度 > 768)时,它有一个简单的下拉登录菜单。 当屏幕宽度低于 768 时,导航链接最终会出现在一个选择选项中。 问题是下拉登录菜单在选择选项中不起作用。 当屏幕宽度小于 768 时,我想使用 PHP 将下拉登录菜单更改为简单的<a href>链接。 现在我的页面中有<head> : <? $screenWidth = '<script type="text/javascript">document.write(screen.availWidth);</script>'; ?> 在<body> : <? if($screenWidth <= "768") { echo '<li><a href="login.php">Log in</a></li>'; } else { ?> <div id="fancy"> <li id="login"> <a id="login-trigger" href="#">Log in <span>▼</span></a> <div id="login-content"> <form> <fieldset id="inputs"> <input id="username" type="email" name="Email" placeholder="Your email
  • 使用JavaScript获取值GET或POST变量?(Getting value GET OR POST variable using JavaScript?)
    问题 如何使用JavaScript获取页面加载时get或post变量的值? 回答1 尽管可以在服务器上处理请求时将其插入文档中,但是无法使用Javascript获取POST变量的值。 <script type="text/javascript"> window.some_variable = '<?=$_POST['some_value']?>'; // That's for a string </script> GET变量可通过window.location.href ,某些框架甚至具有准备解析它们的方法。 回答2 您只能使用JavaScript获取URI参数。 // get query arguments var $_GET = {}, args = location.search.substr(1).split(/&/); for (var i=0; i<args.length; ++i) { var tmp = args[i].split(/=/); if (tmp[0] != "") { $_GET[decodeURIComponent(tmp[0])] = decodeURIComponent(tmp.slice(1).join("").replace("+", " ")); } } 回答3 最简单的技术: 如果省略了表单操作属性
  • 为什么我们应该将PHP与HTML分开(Why should we separate PHP from HTML)
    问题 我是编程的新手,我知道如何将PHP与HTML分开,但是我想知道这样做是否有区别 这: <?php $rand="I love apples" ?> <h1>This is a title</h1> <div> <p>This is a paragraph</p> <?php echo"The variable contains the string $rand"; ?> </div> ?> 与执行此操作相比: <?php echo "<h1>This is a title</h1>"; echo "<div>"; echo "<p>This is a paragraph</p>"; echo "The variable contains the string $rand"; echo "</div>"; ?> 在性能等方面,从HTML代码拆分PHP代码与仅在php中回显整个页面之间,是否有任何区别? 回答1 最佳实践不是将PHP与HTML分开,最佳实践是将逻辑与标记分开。 编码风格也很重要。 适当的行缩进。 使用echo "</div>"; 而不是echo"</div>"; ,有效的HTML,不要将变量放在引号中: echo "The variable contains the string $rand"; 更好(为什么?请参阅下面的评论): echo "The
  • 如何在JavaScript或jQuery中而不是在PHP中访问PHP变量 [复制](How to access PHP variables in JavaScript or jQuery rather than <?php echo $variable ?> [duplicate])
    问题 这个问题已经在这里有了答案: 如何将变量和数据从PHP传递到JavaScript? (20个答案) 6年前关闭。 如何在JavaScript或jQuery中访问PHP变量? 我要写吗 <?php echo $variable1 ?> <?php echo $variable2 ?> <?php echo $variable3 ?> ... <?php echo $variablen ?> 我知道我可以在cookie中存储一些变量,并通过cookie访问这些值,但是cookie中的值是相对稳定的值。 而且,有一个限制,您不能在cookie中存储很多值,并且该方法不是很方便。 有更好的方法吗? 回答1 您的示例展示了将PHP变量传递给JavaScript的最简单方法。 您还可以使用json_encode处理更复杂的事情,例如数组: <?php $simple = 'simple string'; $complex = array('more', 'complex', 'object', array('foo', 'bar')); ?> <script type="text/javascript"> var simple = '<?php echo $simple; ?>'; var complex = <?php echo json_encode($complex); ?>; <