我需要加载一个网址,并且此页面上的唯一文字是JSON字符串。
作为一个例子,我构建了一个简单的函数来获取星期几:getDayOfWeek()
。我的实际功能要复杂得多,而且不能轻易转换成另一种语言。
但我不能简单地将其加载到DOM中。我需要页面上的 only 文本作为JSON对象。
例如:
http://example.com/what_day_is_it // needs to return: { "day": "Friday" }
这是一个小提琴:http://jsfiddle.net/7b49Lorw/
HTML:
<span id="day"></span>
JS:
function getDayOfWeek() {
var d = new Date();
d.getDay();
var gsDayNames = new Array(
'Sunday',
'Monday',
'Tuesday',
'Wednesday',
'Thursday',
'Friday',
'Saturday'
);
return gsDayNames[d.getDay()];
}
$('#day').text(getDayOfWeek());
假设我在服务器端使用PHP,我如何使用PHP来评估JS函数的结果并返回JSON字符串?
答案 0 :(得分:0)
由于您在问题中包含了PHP标记(即使您没有提及):
<?php
echo json_encode(array('day' => date('l')));
<强> 编辑: 强> 因为我们只能猜测你实际上想要做什么,并且因为你觉得将1000多行JS功能翻译成其他语言的难度并不值得,为什么不要你呢?只需使用以下内容包装函数的输出:
JSON.stringify({ "day": <YourFunctionThatReturnsTheDay> });
并在DOM准备好后显示它?这将假设调用您的页面的任何客户端都能够解析并运行Javascript。
答案 1 :(得分:0)
在php中,您可以根据一些参数生成代码。例如,您可以在GET请求中添加参数,例如: http://example.com/what_day_is_it?onlyJSON=true
然后在您的代码中,将可视部分包装在
中<!-- Your JSON print goes here -->
<?php if ($_GET['onlyJSON']){ ?>
<span id="day-of-week">
</span>
<!-- Your HTML code without parameter goes here-->
<?php } else { ?>
<span> MY BIG PAGE </span>
<? } ?>
你的javascript就是:
function getDayOfWeek() {
var d = new Date();
d.getDay();
var gsDayNames = new Array(
'Sunday',
'Monday',
'Tuesday',
'Wednesday',
'Thursday',
'Friday',
'Saturday'
);
return gsDayNames[d.getDay()];
}
$('#day').text(getDayOfWeek());
$('#day-of-week').html(JSON.stringify({day: getDayOfWeek()}));
这将使页面仅显示您的JSON。从文本的角度来看,就是这样。但是,页面本身(它的源代码)不会只包含那个json。它将具有处理它的HTML代码+ Javascript。要在JS中使用函数,您需要将它作为Page的一部分。
答案 2 :(得分:0)
您可以安装v8js(PHP扩展,允许在PHP中解释Javascript代码)。本指南介绍了v8js的安装和入门: