使用包含 @ 的密码使用 PHP 连接到 FTP

2023-12-09

我有以下问题:

我需要连接到 FTP 并读取一个 CSV 文件。主要问题是它的密码有@、$、%...我如何连接特殊字符?我尝试了以下几种连接方式:

文件打开

$filename = 'ftp://user:p@s([email protected]/file.csv'; 
$handle = fopen($filename, "r") or die("Error");

FTP登录

$ftp_server = "ftp.myftp.url/file.csv";
$ftp_user = "user";
$ftp_pass = "p@s($word";
$conn_id = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
$login_result = ftp_login($ftp_server, $ftp_user, $ftp_pass) or die("Could not connect to 2");
$data = file_get_contents('ftp.myftp.url/file.csv');

感谢大家!


您的两段代码有两个不同的问题。


文件打开

$filename = 'ftp://user:p@s([email protected]/file.csv'; 
$handle = fopen($filename, "r") or die("Error"); 

在这里,问题是@,正如您所猜对的那样,因为它在网址语法(作为凭据和主机名之间的分隔符)。

你必须URL编码 the @ to %40:

$filename = 'ftp://user:p%40s([email protected]/file.csv'; 

您提到实际密码也有%。那必须是URL编码 to %25.


FTP登录

$ftp_server = "ftp.myftp.url/file.csv";
$ftp_user = "user";
$ftp_pass = "p@s($word";
$conn_id = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
$login_result = ftp_login($ftp_server, $ftp_user, $ftp_pass) or die("Could not connect to 2");

这里,问题不在于@,因为不涉及 URL(也不涉及%将会是一个问题)。在这里,问题是$, 就像你一样使用双引号,所以$word被替换为(可能未定义)变量的值word,有效地使密码成为p@s( only.

Use 单引号以避免$被解释为变量:

 $ftp_pass = 'p@s($word';

或者逃避$ with \:

 $ftp_pass = "p@s(\$word";
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用包含 @ 的密码使用 PHP 连接到 FTP 的相关文章

随机推荐

  • ActionController::RoutingError(未初始化常量 AdminsController)

    我正在使用 Rails 3dhtmlxGrid 我创建了一个名为的控制器admin我们定义了 3 个函数 例如view data dbaction及其视图文件 下面是我的admin控制器文件 class AdminController lt
  • 无需 jQuery 即可平滑滚动锚链接

    是否可以使用平滑滚动来锚定链接 但是without jQuery 我正在创建一个新网站 但我不想使用jQuery 扩展这个答案 https stackoverflow com a 8918062 3851798 定义scrollTo函数后
  • 如何使用 wp7 的 GPS 获取地址名称

    我可以使用 GeoCoordinateWatcher 类获取 Windows Phone 7 上的当前 GPS 坐标 如下所示msdn 我只能得到Latitude and 经度值 但我想得到Address那个位置的 市场上有一个名为 Whe
  • 为什么 map/filter ... 不适用于无数组?

    Nothing 不是所有类型的子类型吗 scala gt val array new Array 5 array Array Nothing Array null null null null null scala gt array map
  • 列出所有应用程序 - 输出为文本文件

    我只是想知道如何使用最好的 applescript 来查找 Mac OS X 10 5 上安装的所有应用程序 并将其所有应用程序名称输出到文本文件中 Mac OS X 下安装的所有应用程序都注册在启动服务数据库 Launch Service
  • 如何使用 GitHub API?

    当它告诉我使用时 我不确定这意味着什么 GET repos owner repo commits sha 我如何使用该 API 调用来检索我正在查找的信息 GET repos owner repo commits sha GET是用于调用此
  • 绕特定点旋转(例如,绕0,0,0旋转)

    我一直在这个问题上进行了很多搜索 但我找不到真正合适的答案 我需要围绕给定点 例如 0 0 0 旋转圆柱体 但圆柱体的枢轴是默认给定的 我该如何改变它 I found this主题 这正是我想做的 但我不知道如何用 java 来做 为了更好
  • 列出实现接口的类的所有属性

    我有一个带有接口的类 TInterface interface IXMLNode function Get One Boolean function Get Two Boolean function Get Three Boolean pr
  • php - 我应该在调用 Location: header 之后调用 exit() 吗? [复制]

    这个问题在这里已经有答案了 调用重定向函数头后 是否应该调用 exit 谢谢 你绝对应该 单独设置标头不会终止脚本执行
  • 在 .NET C# 中存储加密密钥的最佳方法

    在我们的应用程序中 我们有很多敏感的配置设置 我们将它们存储在再次加密的 xml 文件中 该安全文件必须在运行时解密并读取配置值 但是出现了一个问题 密钥和初始化向量是硬编码在代码中的 因此任何人都可以使用 Reflector 读取它 在
  • 使用java从服务器(ServerSocket)读取客户端(客户端Socket)上的字节包

    我是新人 我是一名 Java 开发人员 新手 目前我正在从事 BSE 项目 我面临着从服务器 服务器套接字 读取客户端 客户端套接字 上的字节包的问题 如果你能帮助我 请帮助我 提前致谢 好吧 如果你想直接与数据包交互 那么你需要使用Dat
  • 如何从User字段LookupId获取用户

    我在 sharepoint 在线有一个列表 在这个列表中 我有一个人员字段 当我调用 API 端点来获取列表中的所有项目时 我获得了 person 字段的 LookupId 值 我尝试使用lookupid的值来获取用户 但它不起作用 因为该
  • 为什么 Hibernate 会忽略 package-info.java?

    我正在尝试在包级别上使用 Hibernate TypeDef 注释 正如它所描述的那样休眠文档 我在用着Hibernate 3 6 and Spring 3 0 7 代码编译并显示package info class位于类路径中 但 Hib
  • 我们究竟如何计算时间戳差异?

    我们将时间戳作为姿势 图片和点数据的双精度值 它们并不总是对齐 如何计算两个时间戳之间的时间距离 是的 我知道如何减去两个双精度数 但我完全不确定增量如何与时间相对应 我有一些有趣的时间戳数据可以阐明您的问题 但没有准确回答它 我一直在尝试
  • MySQL BIGINT(20) 与 Varchar(31) 性能对比

    我读过 像 23423423423423423637 这样的 bigint 作为 primare 唯一键比像 961637593864109 412954765521130 这样的 varchar 更好 但是how当有 100 万行时 我永
  • twig 继承和 symfony2 控制器变量

    我正在尝试使用 symfony2 twig 进行我的第一个项目 我使用定义的块创建了基本的树枝模板 它基本上看起来像这样 block content some content endblock block footer footer con
  • angularJS:用于溢出文本和性能的 dotdotdot

    我是 angularJS 的新手 也许写了一些不好的东西 但我怎样才能正确实现这个插件 https github com BeSite jQuery dotdotdot 在我的桌子上吗 现在用我的代码我的编辑表单和表格真的不太快 真的太慢
  • 使用 Google App Engine for Java 出现 ClassNotFoundException

    我和一个朋友正在使用 Java SDK 涉足 App Engine 我们已经 毫无问题地组合一个 Hello World 示例 然而 当 我们尝试添加代码以使用以下方式对 Web 服务进行简单调用 com google api client
  • 使用 libpqxx 库插入 NULL/空字符串

    在下面的代码片段中 名为 mac 的 std string 对象有时是一个空字符串 即 我希望准备好的语句自动将此变量视为 null 我想知道如何在下面的代码中实现这一点 在我的谷歌搜索尝试中 我碰巧发现有一种方法可以设置指示空值的标志 但
  • 使用包含 @ 的密码使用 PHP 连接到 FTP

    我有以下问题 我需要连接到 FTP 并读取一个 CSV 文件 主要问题是它的密码有 我如何连接特殊字符 我尝试了以下几种连接方式 文件打开 filename ftp user p s email protected file csv han