0

我是 php 和 javascript 新手,所以不要生气。好的,所以我想从另一台服务器获取 xml 文件,然后只提取一个数据(数字)并将其放入 javascript 变量中,以便我可以使用它进行计算。

我有这段代码可以很好地获取 xml 文件,并且我得到了带有我需要的数据的 $result 变量,但是我无法将该数据保存在 javascript 变量中。我在 javascript 中需要这个数字的原因是因为所有的计算都是用 javascript 编码的。

这是php代码:

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,
'http://www.pbz.hr/Downloads/PBZteclist.xml');
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$xml = curl_exec($ch);

echo($xml);

curl_close($ch); 

$xmlObject = new SimpleXMLElement($xml);
$node = $xmlObject->children();
$result =   $node[0]->Currency[12]->BuyRateForeign;
echo("<br />");
echo("<br />");
echo $result;
?>

我需要来自 EUR7,480000 的数据

这个数字 7,480000 是我需要提取并保存在 javascript 变量中的全部内容。

也许我这样做的方式不正确,但我已经尝试了一切。请帮我。

4

3 回答 3

0

假设您不打算使用 Ajax 执行此操作:

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.pbz.hr/Downloads/PBZteclist.xml');
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$xml = curl_exec($ch);

echo($xml);

curl_close($ch);

$xmlObject = new SimpleXMLElement($xml);
$node = $xmlObject->children();
$result =   $node[0]->Currency[12]->BuyRateForeign;
?>
<script type="text/javascript">
    var rate = '<?php echo $result; ?>';
</script>    
于 2012-11-15T00:47:01.830 回答
0

如果您希望在页面加载时在 javascript 中设置数据,您可以使用 php 回显 javascript 字符串以启动变量。

在 PHP 中:

<script>
<?php echo "var data = ".$result; ?>
</script>

如果您要异步获取数据,则必须使用 javascript AJAX 调用 PHP 页面,该页面以某种格式 (JSON) 或单个字符串值输出您的数据。

于 2012-11-15T00:50:09.130 回答
0

我建议使用 xpath 获取值,以防顺序发生变化。如果要用作字符串,请将其括在引号中。如果您在计算中使用它,您可能需要去掉逗号等...

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,
'http://www.pbz.hr/Downloads/PBZteclist.xml');
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$xml = curl_exec($ch);
curl_close($ch);

//echo($xml);

$sxe = new SimpleXMLElement($xml);

$result = $sxe->xpath("//Currency[@Code='978']");
$BRF = $result[0]->BuyRateForeign;
?>
<script>
  var bfr_string = '<?= $BRF?>'; //string
  var bfr_number = <?= str_replace(',','.',$BRF)?>; //number
</script>
于 2012-11-15T01:47:43.023 回答