使用PHP从URL获取数据

用户名

我正在尝试搜索Wikipedia,并在php中获得结果。当我在php文件中以硬编码字符串形式输入URL时,它可以工作,但是如果我尝试将URL作为参数,它将返回以下内容:

["",[],[],[]]

这是带有硬编码字符串的代码:

<?php
$opts = array('http' =>
  array(
    'user_agent' => 'User1 (http://www.exampe.com/)'
  )
);
$context = stream_context_create($opts);
$url = 'http://en.wikipedia.org/w/api.php?action=opensearch&search=yolo';
echo file_get_contents($url, FALSE, $context);
?>

以下是从其网址获取参数的版本:

<?php
$opts = array('http' =>
  array(
    'user_agent' => 'User1 (http://www.exampe.com/)'
  )
);
$context = stream_context_create($opts);
$url = $_GET['url'];
echo file_get_contents($url, FALSE, $context);
?>

这就是我输入参数的方式:

http://example.com/test.php?url=http://en.wikipedia.org/w/api.php?action=opensearch&search=yolo
沃德

发生问题是因为您的get参数包含具有特殊含义的字符,例如%,?,/ 、:和=。

解决方案:

  • 用%26替换&
  • 用%2F替换/
  • 用%3A代替
  • 代替 ?按%3F
  • 用%3D替换=

还有更多需要替换的字符,但是这些字符不会出现在您的URL中。

您的网址将变为

http://example.com/test.php?url=http%3A%2F%2Fen.wikipedia.org%2Fw%2Fapi.php%3Faction%3Dopensearch%26search%3Dyolo

您可以使用php函数urlencode轻松完成此操作

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从php中的url获取数据

来自分类Dev

使用PHP从<a>标记获取URL

来自分类Dev

使用部分 URL 作为值从数据库中获取数据 - PHP

来自分类Dev

使用PHP获取Whois数据?

来自分类Dev

使用php从phpmyadmin获取数据

来自分类Dev

如何使用PHP从URL获取JSON数据?我的身份验证失败

来自分类Dev

使用javascript函数正确获取数据URL

来自分类Dev

如何使用 ReactJS 从多个 URL 获取数据?

来自分类Dev

通过使用php从url获取值

来自分类Dev

如何使用PHP从URL获取域名?

来自分类Dev

使用PHP从外部URL获取Json对象

来自分类Dev

PHP使用GET []从URL获取值

来自分类Dev

如何使用PHP从URL获取ID

来自分类Dev

如何使用PHP获取随机URL的基础?

来自分类Dev

使用PHP从外部URL获取Json对象

来自分类Dev

使用 PHP 从 URL 获取 api 结果

来自分类Dev

如何使用 PHP 获取 URL 的特定部分

来自分类Dev

如何使用php获取当前url?

来自分类Dev

如何使用PHP获取JSON数据

来自分类Dev

使用php从json网址获取数据?

来自分类Dev

使用变量从PHP中的XML获取数据

来自分类Dev

使用ajax php jquery获取数据

来自分类Dev

使用PHP获取数据库备份

来自分类Dev

如何使用PHP Rest API获取数据?

来自分类Dev

使用PHP从Stripe Webhook JSON获取数据

来自分类Dev

使用jQuery从PHP文件获取JSON数据

来自分类Dev

使用cURL在PHP中获取api数据

来自分类Dev

使用PHP在td标签之间获取数据

来自分类Dev

在PHP中使用substr动态获取数据