如何转义 fopen 的 url

2023-12-30

看起来 fopen 无法打开带有空格的文件。 例如:

$url = 'http://gatewaypeople.com/images/articles/cntrbutnssttmnts12_main 616x200.jpg';
fopen($url, 'r'); 

返回 false(注意 url 中的空格),但浏览器可以访问文件。 我还尝试通过以下方式转义网址urlencode and rawurlencode没有运气。如何正确逃离空间?


您可以使用此代码:

$arr = parse_url ( 'http://gatewaypeople.com/images/articles/cntrbutnssttmnts12_main 616x200.jpg' );
$parts = explode ( '/', $arr['path'] );
$fname = $parts[count($parts)-1];
unset($parts[count($parts)-1]);
$url = $arr['scheme'] . '://' . $arr['host'] . join('/', $parts) . '/' . urlencode ( $fname );
var_dump( $url );

替代和简短的答案(感谢@Dziamid)

$url = 'http://gatewaypeople.com/images/articles/cntrbutnssttmnts12_main 616x200.jpg';
$parts = pathinfo($url);
$url = $parts['dirname'] . '/' . urlencode($parts['basename']);
var_dump( $url );

OUTPUT:

string(76) "http://gatewaypeople.com/images/articles/cntrbutnssttmnts12_main+616x200.jpg"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何转义 fopen 的 url 的相关文章

  • php 崩溃后 mysql 表被锁定

    我有一个 MySQL DB 和一个 innoDB 表 我有一个 php 页面 用于连接 锁定表 进行一些更新 然后解锁表 PHP 页面通过 wamp 与 apache 一起提供 php页面将文件上传到数据库 我决定通过上传一个大小大于分配给
  • Laravel 集合 .each() + array_push

    需要有关 Laravel 上 each 方法内的 array push 的帮助 我无法在此代码上获取容器数组 imagesData array collect data images gt each function v k use ima
  • 如何在 Laravel 中创建一条包罗万象的路线

    我需要一个 Laravelroutes php将捕获所有流量到特定的条目example com premium section网站 以便我可以提示人们在访问优质内容之前成为会员 您还可以通过在参数上使用正则表达式来捕获 全部 Route g
  • 如何将 php Web 应用程序转换为桌面应用程序并保留数据库 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我们有一个用 PHP 开发的 Web 应用程序 但大多数客户并没有一直连接到互联网 那么 有没有办法将应用程序转换为桌面应用程序 以便
  • 使用 PhpStorm 删除 CakePHP 中的插件后出现“成员有私人访问错误”

    从我的 CakePHP 框架中删除插件以及与其关联的所有代码行后 我在以下位置收到错误getInitializer的功能autoload static php in my vendor gt composer folder public s
  • 使用 PHP/COM/ADSI/LDAP 更改 AD 密码

    我已经被这个问题困扰了好几天了 我尝试了各种解决方案均无济于事 请帮忙 Problem 我们有两个域控制器 它们不属于我们的管理范围 我们能够通过端口 389 上的 LDAP 进行连接 但无法通过端口 636 安全连接 我们正在开发一个系统
  • 如何验证使用 php 上传的文件不包含可执行二进制文件?

    使用简单的 Firefox 插件 黑客可以更改他们想要上传的任何文件的 MIME 类型 绕过文件类型检查器 然后 黑客可以使用 GIMP 等程序将 php 脚本嵌入到图像 音频或任何其他文件的二进制数据中 我该如何检查并防止这种情况发生 您
  • 基本表创建 fpdf

    我找不到使用 fpdf 制作表格并从 mysql 数据库获取数据的合适教程 我只是想知道如何创建一个 我在网上尝试示例时遇到了很多错误 例如 我有 名字 中间名 姓氏 年龄 和 电子邮件 列 如何使用 fpdf 创建表格并回显数据库中的条目
  • 访问 public_html 级别之外/以下的文件

    如何通过 url 访问文件 home uzair etc index php 即使我运行域 something com 它显示了 home uzair public html index php 这个文件 任何人请帮助我如何访问放置在 ho
  • 如何比较两个字符串的大小写和变音符号不敏感?

    我有两根弦 字符串 1 塞巴斯蒂安 字符串 2 塞巴斯蒂安 我想通过忽略 重音 字符来比较这两个字符串 谁能知道这个逻辑吗 提前致谢
  • CSS 无法与 CodeIgniter 一起使用

    这是我的 CI 代码的一部分 class page extends CI Controller var Page public function construct parent construct this gt Page 1 this
  • Facebook 中用户的时区是如何编码的

    我需要检查用户的时区 但我找不到它的真正定义 参考API http developers facebook com docs reference api user says 用户的时区与 UTC 的偏移量 现在在维基百科上这些是可能的时区
  • 如何计算加权平均值?

    我的语言是PHP 但是算法应该是相当通用的 我有一个关联数组 比方说 评级和评级次数 ratings array 1 gt 1 2 gt 3 3 gt 6 4 gt 3 5 gt 3 这相当于 1 2 2 2 3 3 3 3 3 3 4 4
  • 根据通过 AJAX 请求的用户输入重绘 google 图表

    我有一个谷歌图表从我的数据库中提取数据 它可以按我想要的方式工作 根据 URL 中的 get 请求 它从所选表中提取数据 我想根据下拉菜单中选定的表通过 ajax 更新此图表 我无法突破的部分是通过 ajax 获取数据响应 我认为下面的代码
  • 如何从控制器访问 Zend Framework 应用程序的配置?

    我有一个基于 Zend 框架的应用程序快速开始 http framework zend com docs quickstart setup 我已经让演示工作起来 现在正在实例化一个新的模型类来完成一些实际工作 在我的控制器中 我想将配置参数
  • 如何在 PHP 数组中的另一个已知(通过键或指针)元素之后有效地插入元素?

    给定一个数组 a array abc 123 k1 gt v1 k2 gt v2 78 tt k3 gt v3 当其内部指针指向其元素之一时 如何在当前元素之后插入元素 如何在键已知元素 例如 k1 之后插入元素 表现护理 您可以通过使用拆
  • 在 Apache 服务器上将特定的 .htm 页面处理为 .php [重复]

    这个问题在这里已经有答案了 我正在为 Apache 服务器编程 并且只需要将一个特定的 html 页面 例如 first htm 作为 PHP 脚本进行处理 可以设置吗 SetHandler http httpd apache org do
  • PHP简单的html dom解析器与wordpress冲突吗?

    PHP简单的html dom解析器与wordpress冲突吗 因为每当我尝试将其与此代码一起包含在我的标头中时 一切都变成空白 感谢您提前提供任何帮助 当我尝试在 HTML 文档中使用 PHP 包含时 我遇到了同样的问题 但当我使用func
  • 如何获取 URL 中未知的 $_GET 值的数组?

    我正在使用一个在线购物车 它接受订购的商品并通过 URL 将其唯一 ID 传递到 process php 页面 所以 URL 看起来像这样 process php code 1 231 code 2 532 code 3 342 Anoth
  • 如何显示 PHP 对象

    我有这样的代码 dataRecord1 client gt GetRecord token table filter echo pre print r dataRecord1 echo pre foreach dataRecord1 gt

随机推荐

  • 报告不确定性:给定平均值和标准误差,仅显示有效数字

    目的是显示多次观察的结果 而不需要 不必要的数字 即用 与给定一致的有效数字位数 不确定 For example if computed mean 123 45 and err 0 0012345 then the expected out
  • 如何使用 Golang 将文件添加到现有 zip 文件

    我们可以创建一个 zip 新文件并使用 Go 语言添加文件 但是 如何使用 GoLang 添加带有现有 zip 文件的新文件 如果我们可以使用Create函数 如何获取zip writer引用 有点困惑 经过更多分析 我发现 无法使用现有的
  • Mongoid 限制删除多个

    使用mongoid 如何删除前10000个文档error message字段是 Error not found 原生 mongo 查询将被愉快地接受 MongoDB 支持删除限制 删除命令从集合中删除文档 单个 删除命令可以包含多个删除规范
  • System.StackOverflowException WPF MVVM

    我正在尝试使用 MVVM 在 WPF 中创建一个简单的数字时钟 我有一个带有装订的标签 背后的代码很简单 每秒都会引发一个属性更改事件 并且我有一个 stackoverflow 异常 有人可以帮忙吗 public partial class
  • 如何调用 script 标签中定义的 javascript 函数?

    Example 我该怎么打电话test 编辑 我没有正确解释这一点 我正在使用node js的request模块来加载包含javascript函数的外部html文件 request get options function error re
  • 在 vim 中映射 Shift 键

    I m having an issue when mapping the Shift key in VIM I want Ctrl L to behave differently than Ctrl Shift L 所以我有这个 for i
  • 数据流管道和 pubsub 模拟器

    我正在尝试设置我的开发环境 我没有在生产中使用 google cloud pubsub 而是使用 pubsub 模拟器进行开发和测试 为了实现这一点 我设置了以下环境变量 export PUBSUB EMULATOR HOST localh
  • 蓝牙配对时未调用 BroadcastReceiver

    很简单 我唯一的代码是这样的 final BroadcastReceiver mReceiver new BroadcastReceiver Override public void onReceive Context context In
  • Python 集合.counter

    python新手 想知道如何告诉python第3行中的数据都是一个数字而不是单个数字 我正在使用 collections Counter 但它可能不是正确的 datafile csv Z4 29 Mar 13 Name 1 1234567
  • 使用 R markdown、knitr、pandoc、beamer 绘图大小和分辨率

    默认情况下不适合幻灯片 甚至不通过任何其他方式打印 这是 Rmd 编辑 看来你必须在每个块中使用plot 现在打印第二个图 Plot should show at high resolution r echo FALSE comment l
  • 如何在 php 中获取部分从 jquery 加载的页面的整个 html

    我这问题好几天了 我必须从 php 加载页面的整个 html 在此页面上有一个 jquery 函数 当所有页面加载完毕时会调用该函数 这个函数将其他html加载到页面中 所以我必须加载所有html 也加载了jquery的部分 我可以知道我得
  • 如何检测软键盘输入法是否覆盖整个屏幕?

    我正在创建一个应用程序 用户可以在其中单击选项卡 并且将以编程方式显示软键盘 但是 如果软键盘要覆盖整个屏幕 如提取的 EditText 我不想显示软键盘 如下所示 检测屏幕方向可能会有所帮助 但据我所知 在平板电脑上 即使在横向上 软键盘
  • 获取主干集合中属性不等于某个值的所有模型

    这取自 Backbone js 文档 var musketeers friends where job Musketeer 在那里你可以获得一系列工作平等的模型 那就是 火枪手 但我该如何做相反的事情呢 我怎样才能获得一系列工作不是 火枪手
  • 如何从 ListView 控件中的各个项目中删除复选框?

    我有一个 ListView 其中包含 名称 预期 总计 列 我想在末尾添加另一列 重新计数 理想情况下 仅当 预期 值大于 总计 值时 重新计数 列才会有一个复选框 到目前为止 我已经获得了带有列的 ListView 并且可以在左侧添加一个
  • Android 中的简单 XML 解析

    我的xml如下所示 lt sUID gt yPkmfG3caT6cxexj5oWy34WiUUjj8WliWit45IzFVSOt6gymAOUA lt sUID gt lt Shipping gt 0 00 lt Shipping gt
  • 使用 Angular cli 6 项目在 Chrome 工作区中处理组件 CSS 文件

    我正在尝试在 Angular 6 7 CLI 项目中使用具有 CSS 持久编辑功能的 Google Chrome 工作区 当在 angular json 配置中添加 extractCSS true 并使用 source map true 标
  • 检测点击外部元素?

    如同这个问题 https stackoverflow com questions 152975 how to detect a click outside an element 但更进一步 我想检测一组项目之外的点击 我按以下方式处理这些项
  • jQuery(或者可能是浏览器)是破坏缓存的ajax加载脚本

    我正在通过加载视图页面 ajax 使用 jQuery 调用 我明确将 缓存 选项设置为 true 我们在应用程序中没有任何地方使用 ajaxSetup 否则指定 这是 ajax 请求设置 viewDialogLink click funct
  • Chart.js - 如何在图表中间添加文本?

    我正在使用 Chart js 创建此折线图 但我需要标记区域 如下所示 有任何想法吗 您扩展您使用的图表 然后使用辅助方法编写标签 HTML
  • 如何转义 fopen 的 url

    看起来 fopen 无法打开带有空格的文件 例如 url http gatewaypeople com images articles cntrbutnssttmnts12 main 616x200 jpg fopen url r 返回 f