php - 在 PHP 不工作的情况下修剪变量中的空间
问题描述
我正在使用 PHP 将图像转换为 base64 编码。我在获取 $path 时遇到了问题,因为如果我将变量放在 $path 中,$path 数据就有空间。
例如我去回显 $path 以查看结果是uploads/ 2007170312_download.jpg
. 我可以知道如何删除前面的空间2007170312_download.jpg
吗?我想要的预期结果是uploads/2007170312_download.jpg
以下是我的示例编码:
$logo_file_path = '2007170312_download.jpg';
$path = "uploads/".$logo_file_path;
$type = pathinfo($path, PATHINFO_EXTENSION);
$data = file_get_contents($path);
$base64 = 'data:image/' . $type . ';base64,' . base64_encode($data);
echo $path;
我已经尝试过,但它不起作用,结果仍然保持不变:
trim function
$path_test = str_replace(' ','',trim($path));
echo $path_test;
urlencode function
,结果不对,给我看看uploads%2F%0A2007170312_download.jpg
。
$path_test = str_replace(' ','',urlencode($path));
echo $path_test;
希望有人能指导我如何解决它。谢谢。
解决方案
抱歉,我无法重现您的问题。当我将您的代码复制并粘贴到我的 IDE(Visual Studio 代码)中并执行它(第 4 行和第 5 行注释掉,以避免在到达echo
命令之前出现错误消息和中止)时,我得到了输出uploads/2007170312_download.jpg
,即没有任何空格, 在控制台中。显然没有理由使用trim()
或str_replace()
函数来获取数据文件的正确路径。
编辑:而且,正如这里其他地方所说的那样,trim()
无论如何都无济于事,因为它只删除前导和尾随空格,但不删除字符串中的空格。
Edit2:您是否可能错误地在文件名中添加了前导空格
(即,或在原始代码中' 2007170312_download.jpg'
路径的目录部分
(即)中添加了尾随空格?"uploads/ "
Edit3:但这并不能解释为什么str_replace()
不起作用。执行以下行
<?php
$logo_file_path = ' 2007170312_download.jpg'; // leading whitespace in string intended
$path = "uploads/ ".$logo_file_path; // trailing whitespace in string intended
$type = pathinfo($path, PATHINFO_EXTENSION);
// $data = file_get_contents($path);
// $base64 = 'data:image/' . $type . ';base64,' . base64_encode($data);
echo $path . "\n";
$path_test = str_replace(' ','',trim($path));
echo $path_test;
导致以下输出:
uploads/ 2007170312_download.jpg
uploads/2007170312_download.jpg
所以你的示例代码工作正常(即使trim()
其中根本没有效果并且可以省略),问题必须在其他地方......
推荐阅读
- racket - Racket - 根据给定列表生成一个新列表
- spring-boot - 如何在 Spring Boot 中启用 SSL
- reactjs - 是否可以为谷歌图表表中的一行设置最大高度?
- c# - C# 我必须向右旋转这个数组,但我不知道该怎么做
- python - 重新创建用于生成文本的字符级 RNN
- wxpython - 如何在 wxPython 中禁用平滑滚动?
- rrdtool - 一小时图表在英国 BST -> GMT 显示“nan”前一小时生成
- javascript - 如何在此 jQuery 代码上设置超时?
- ios - 无论多行选项如何,UILabel 都会截断文本
- cmake - 如何创建启用了特殊构建选项的现有目标的可执行目标?