【问题标题】:loads of spaces when echoing php string after using str_replace使用 str_replace 后回显 php 字符串时出现大量空格
【发布时间】:2014-10-04 16:07:32
【问题描述】:

我有 php 代码使用下面的代码从文件末尾删除文件类型

$atrib = str_replace('.m3u', '', $atrib); // strip off the playlist extension

每次我似乎使用它时,当我回显它时,它后面都会显示大量的空格或空白,它后面有大约 5 个空格

在我使用str_replace 之前,网址如下所示:

"http://example.com/playlist/movie1.m3u"

在我使用str_replace 后,当我回显我的字符串时,它现在看起来像这样,你看到###### 它只是一个空格

"http://example.com/playlist/movie1########"

如您所见,在电影到达“之前有一个很大的空间”

【问题讨论】:

  • 什么返回echo '#' . $atrib . '#';
  • 显示var_dump($atrib);的输出
  • 什么版本的 PHP? sandbox.onlinephpfunctions.com/code/… 似乎工作正常。
  • 当我使用 var_dump 这显示为 string(3) "movie1" 而我做 echo '#' 。 $atrib 。 '#';这是显示 #movie1# 请注意,如果我删除了 str_replace 函数,则 url 会回显而没有空格:/
  • 您需要在str_replace 调用之前显示var_dump($atrib); 的输出。

标签: php regex str-replace


【解决方案1】:

您可以尝试捕获组。

^(.*)(\..*)$

这里是online demo,并在php.fnlist.com进行了测试

示例代码:(代码取自上述网站)

$re = "/^(.*)(\\..*)$/";
$str = "http://example.com/playlist/movie1.m3u";
$subst = '$1';

$result = preg_replace($re, $subst, $str);

【讨论】:

  • 这没关系,但是每次页面加载时 url 的结尾都会改变 movie1 ca 变成 movie2 ,movie10 等等
  • 是的,它适用于每个网址。我没有在我的正则表达式模式中使用任何电影^(.*)(\..*)$它只是根据最后一个点简单地分成两组。
猜你喜欢
  • 1970-01-01
  • 2021-10-20
  • 2014-05-03
  • 2013-05-09
  • 2014-04-22
  • 1970-01-01
  • 1970-01-01
  • 2013-06-30
  • 1970-01-01
相关资源
最近更新 更多