我有一个让我疯狂的小虫子,我已经浏览了整个互联网并找到了许多不同的解决方案,但对我来说却没有。我有 一个php文件和一个js文件,我试图将值从php发送到js。
PHP:
$_SESSION['url'] = '\''.$url.'\'';
JS:
var url="<?php echo json_encode($_SESSION['url']) ?>";
var webPage = require('webpage');
var page = webPage.create();
page.open(url, function(status) {
console.log(url);
phantom.exit();
});
我试图输出url值并且它是空的,所以我做错了什么,请记住js文件是.js
答案 0 :(得分:0)
PHP代码未在.js文件中执行。要分配此url变量,您需要通过ajax获取它或将其设置在布局的head部分。
答案 1 :(得分:0)
我想,你做得太复杂了。我们试试代码:
<?
$url = 'http://example.com';
$a = '\''.$url.'\'';
?>
var url="<?php echo json_encode($a) ?>";<br>
var url="<?php echo $url; ?>";
返回:
var url=""'http:\/\/example.com'"";
var url="http://example.com";
答案 2 :(得分:0)
我认为应该删除代码中的所有引号,并确保session_start()函数必须是文档中的第一件事。在任何HTML标记之前。
PHP:
$_SESSION['url'] = $url;
JS:
var url='<?php echo $_SESSION['url'] ?>';
var webPage = require('webpage');
var page = webPage.create();
page.open(url, function(status) {
console.log(url);
phantom.exit();
});
答案 3 :(得分:0)
请将.js文件更改为.php,然后在脚本标记下输入您的js代码。
答案 4 :(得分:0)
您必须让PHP解释session
值,这可以通过各种方式完成。
首先,您可以设置$url
不带引号
<?php
session_start();
// no idea why you encode as JSON.
$_SESSION['url'] = json_encode($url);
session_write_close();
?>
其中一个使用某个script
文件的.php
标记,例如index.php
文件。
<script>
<?php
session_start();
$session_url = $_SESSION['url'];
session_write_close();
?>
var url='<?php echo $session_url ?>',
webPage = require('webpage'),
page = webPage.create();
page.open(url, function(status) {
console.log(url);
phantom.exit();
});
</script>
第二个选项是生成javascript作为源,例如
<script src="javascript.php"></script>
javascript.php
提供与第一个示例相同的代码,只应用标题内容类型。
<?php
header('Content-Type: application/javascript');
session_start();
$session_url = $_SESSION['url'];
session_write_close();
?>
var url='<?php echo $session_url ?>',
webPage = require('webpage'),
page = webPage.create();
page.open(url, function(status) {
console.log(url);
phantom.exit();
});