- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个网站,该网站使用 Google 的货币转换 API 来转换用户从由 JavaScript 提供支持的下拉列表中选择的货币。
提交表单后出现以下错误:
file_get_contents(12gbp=?usd) [function.file-get-contents]: failed to open stream:
这立即向我表明 URL 是错误的。我不认为是这种情况,因为如果将上述参数直接复制到 Google 的 API 中
http://www.google.com/ig/calculator?h1=en&q=12gbp=?usd
我收到了我期望的结果:
相关代码如下:
getCurrencyRates.php
<?php
// Feed URL's //
$googleCurrencyApi = 'http://www.google.com/ig/calculator?h1=en&q=';
function currency_convert($googleCurrencyApi, $amount, $master, $slave) {
$result = file_get_contents($googleCurrencyApi . $amount . $master . '=?' . $slave);
$result = str_replace("\xA0", ",", $result);
$expl = explode('"', $result);
if ($expl[1] == '' || $expl[3] == '') {
throw new Exception('An error has occured. Unable to get file contents');
} else {
return array(
$expl[1],
$expl[3]
);
}
}
?>
currency.php
<?php
require 'includes/getCurrencyRates.php';
// Check to ensure that form has been submitted
if (isset($_POST['amount'], $_POST['master'], $_POST['slave'])) {
$amount = trim($_POST['amount']);
$master= $_POST['master'];
$slave = $_POST['slave'];
// Check amount is not empty
if (!empty($amount)) {
// Check amount is higher than 1 inclusive
if ($amount >= 1) {
try {
$conversion = currency_convert($googleCurrencyApi, $amount, $master, $slave);
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage();
}
// Check URL has been formed
if ($conversion == false) {
echo 'Sorry, something went wrong';
} else {
echo $conversion[0], ' = ', $conversion[1];
if ($from == $to) {
echo '<p>That was a pointless conversion!</p>';
}
}
} else {
echo 'Number too small. You must enter a number higher than 1 inclusive';
}
} else {
echo 'You must enter a number into amount';
}
}
?>
<body onload="changeList(document.forms['drops'].master)">
<script language="javascript">
var lists = new Array();
// First set of text and values
lists['gbp'] = new Array();
lists['gbp'][0] = new Array(
'usd',
'eur'
);
lists['gbp'][1] = new Array(
'usd',
'eur'
);
// Second set of text and values
lists['usd'] = new Array();
lists['usd'][0] = new Array(
'gbp',
'eur'
);
lists['usd'][1] = new Array(
'gbp',
'eur'
);
// Third set of text and values
lists['eur'] = new Array();
lists['eur'][0] = new Array(
'gbp',
'usd'
);
lists['eur'][1] = new Array(
'gbp',
'usd'
);
</script>
<script language="javascript">
// This function goes through the options for the given
// drop down box and removes them in preparation for
// a new set of values
function emptyList( box ) {
// Set each option to null thus removing it
while ( box.options.length ) box.options[0] = null;
}
// This function assigns new drop down options to the given
// drop down box from the list of lists specified
function fillList( box, arr ) {
// arr[0] holds the display text
// arr[1] are the values
for ( i = 0; i < arr[0].length; i++ ) {
// Create a new drop down option with the
// display text and value from arr
option = new Option( arr[0][i], arr[1][i] );
// Add to the end of the existing options
box.options[box.length] = option;
}
// Preselect option 0
box.selectedIndex=0;
}
// This function performs a drop down list option change by first
// emptying the existing option list and then assigning a new set
function changeList( box ) {
// Isolate the appropriate list by using the value
// of the currently selected option
list = lists[box.options[box.selectedIndex].value];
// Next empty the slave list
emptyList( box.form.slave );
// Then assign the new list values
fillList( box.form.slave, list );
}
</script>
<form name="drops" method="post" action="">
<table border=0 bgcolor="#ffeecc">
<tr>
<td>Amount e.g. 10</td>
<td><input type="text" name="amount" /></td>
</tr>
<tr>
<td>Select from</td>
<td><select name="master" size=1 onchange="changeList(this)">
<option value="gbp">gbp
<option value="usd">usd
<option value="eur">eur
</select>
</td>
</tr>
<tr>
<td>Select to</td>
<td>
<select name="slave" size=1>
<option>Netscape 4 width
</select>
</td>
</tr>
<tr>
<td>
<input type="submit" value="Convert Now" />
</td>
</tr>
</table>
</form>
这个问题是在尝试将服务器端语言与客户端语言结合时遇到的吗?
提前致谢。
最佳答案
Shiplu 是对的。可能与variable scope有关,这真的没有多大意义。至少谷歌不是问题。
关于php - Google 货币转换器 API 和 JavaScript 下拉列表出现 File_get_contents 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9249174/
我正在使用 file_get_contents() 加载一个文本文件以放入文本区域,出于某种原因,每次加载它时,原始文本前后都会插入空格。我知道在保存过程中没有插入空格,因为我从我的 FTP 客户端检
我正在尝试使用 fsockopen 上传超过 2gb 的大文件。但是 file_get_content 出现以下错误,我无法将大文件存储在内存中。我需要分块发送数据,但不知道如何执行此操作。请问有人可
我一直收到这个错误 Warning: file_get_contents failed to open stream: HTTP request failed! HTTP/1.1 401 Unauth
我正在尝试从 php 发送电子邮件我有一个包含所有值的 php 文件和其他 php 模板文件。 (两个文件在同一台服务器上) 例如,我正在使用 file_get_contents 获取 php 模板文
我正处于构建 PHP 应用程序的早期阶段,其中一部分涉及使用 file_get_contents()从远程服务器获取大文件并将它们传输给用户。例如,要获取的目标文件是 200 mB。 如果下载到服务器
我正在为我的博客的示例代码文件夹制作一个基本的 PHP 源代码查看器。 我这里的内容是否足以让它永远不允许查看此脚本所在目录之外的文件或此脚本目录的子目录?我猜还有比 startsWith 更好的解
我正在尝试使用 file_get_contents() 从页面获取 html。 以下效果很好:file_get_contents('http://www.mypage.com?Title=Title'
file_get_contents 是否维护换行符?我认为它做到了,但我已经尝试过: if($conn){ $tsql = file_get_contents('scripts/CreateT
我有一个具有以下架构的网站: End user ---> Server A (PHP) ---> Server B (ASP.NET & Database)
在 if 子句中用作测试条件时,如何防止 file_get_contents 创建空文件? 无论如何都会创建一个空文件,这会导致在不同方法中对 getimagesize() 的后续调用失败。 问题是,
我目前正在本地机器上测试我的代码,我希望它能够读取和写入我拥有的文本文件,所以我有以下代码: Warning: file_get_contents(~/Desktop/insta_user.txt):
在某人的服务器中,出于安全原因,file_get_contents 被禁用。我需要检索 xml 数据。那么,最好的做法是: 验证服务器是否支持file_get_contents? file_get_c
This question already has answers here: Warning: file_get_contents(): https:// wrapper is disabled i
在载入x秒钟后,是否有任何方法可以获取网页响应? 例如,我想创建一个获取youtube视频评论数量的api,但是正如您所知,当您打开youtube视频链接时,它会像加载评论一样2秒钟,因此,如果您知道
我正在尝试像这样从youtube读取视频信息: $vid='WwVZBfMlNPA'; $vurl='http://youtube.com/get_video_info?video_id='.$vid
更新 我解决了问题并发布了答案。但是,我的解决方案并不是 100% 理想。我宁愿只使用 clearstatcache(true, $target) 或 clearstatcache(true, $li
目前,我正在使用 file_get_contents() 将 GET 数据提交到网站数组,但在执行页面时出现此错误: fatal error :超出最大执行时间 30 秒 我真正希望脚本做的就是开始加
问题是当我使用file_get_contents从该网站获取源代码(HTML)时,我收到的结果不是纯html代码。 我使用的代码: $source = file_get_contents("http:
这是我的全部代码: Playlist to Scrape: "; $fullUrl = array(); foreach($output[1] as $ur
我是 PHP 新手,所以请多多关照:) 有时 file_get_contents 会完成其工作,有时则不会。我在网页上构建了一个简单的 URL 检查(如果存在)。但问题是,即使 URL 确实存在(手动
我是一名优秀的程序员,十分优秀!