繁体   English   中英

如何在php中设置变量并在javascript中使用它

[英]How can I set variable in php and use it in javascript

我做了一个应该下载包含所有javascript结果的html的函数,但是我遇到了一个小问题,因为我不知道如何将正在使用的url发送到javascript函数。 这些文件如下所示:

PHP功能:

public function getHTML($url) {
    $script_direction = str_replace('\classes', '', dirname(__FILE__)) . '\phantomjs\phantomjs.js';
    $row = array();
    exec(str_replace('\classes', '', dirname(__FILE__)) . '\phantomjs\phantomjs ' . $script_direction, $row);
    $html = implode('', $row);
    return $html;
}

使用Javascript:

var webPage = require('webpage');
var page = webPage.create();

page.open(url, function(status) {
    console.log(page.content);
    phantom.exit();
});

我需要$ url变量并将其发送到javascript文件并将其存储为url变量。

您可以在php和JS之间传递一个变量,如下所示:

<?php
$url = "http://www.yoursite.com";
?>

<script>
var url = <?=json_encode($url)?>;
<script>

正如@ceejayoz所评论的那样,使用json_encode()将确保PHP中的单引号'不会破坏JS。

您可以使用PHP将页面上的变量回显为javascript变量,如下所示:

<script>
    var url = <?php echo json_encode($url); ?>
</script>

您的PHP变量不能通过JS直接访问

编辑:每个@ceejayoz评论添加了json_encode。

我通常将url放在html视图的data属性中,例如:

<div id="mydiv" data-url="<?=json_encode($url);?>">

并使用javascript,jquery等...,您可以获得:

var url=$("#mydiv").data("url");

您可以为此使用Ajax。 例如,此代码使用jquery get方法:

server.php:

$url = 'someUrl';
if(isset($_GET)){
if($_GET['request']=='get_url'){
     echo $url;
   }
}

JavaScript代码:

    $.get('server.php',{request : 'get_url'},function(data){
    var url = data;
    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM