程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

不会删除字符串中的空格

发布于2022-01-25 13:55     阅读(215)     评论(0)     点赞(5)     收藏(4)


我正在从 textarea 表单中获取输入并将其放在长线上。输入是这样的:

Country: France

City: Paris

Street: Champ

然后把它放在长线上:

$line = $_POST['input'];

现在,我需要用 替换空格和新行<SP> and <BR>,所以我这样做:

$line = str_replace(" ","&ltSP&gt",$line);
$line = str_replace("\n","&ltBR&gt",$line);

但我明白了:

Country:<SP>France <BR> <BR>City:<SP>Paris <BR> <BR>Street:<SP>Champ

现在,如果安装了 \n 我试过这个:

$line = str_replace("\r","&ltBR&gt",$line);

我得到类似的结果。如果我两者都做,我会得到相似的结果,其中显然有一些空格。所以然后我这样做:

$line = str_replace(" ","",$line);

但它保持不变。

我的整个代码是:

 $line = str_replace(" ","&ltSP&gt",$line);
 $line = str_replace("\n","&ltBR&gt",$line);
 $line = str_replace(" ","",$line);
 echo $line;

在这种情况下如何删除空格?

编辑:我做了bin2hex,发现空格实际上是回车\ r。所以这是解决方案:

$line = str_replace("\r","",$line);

为什么 \r 在这种情况下表现得像空间?


解决方案


评论可能就足够了,但我想我会分享这个片段,以你的例子为例,我对你想要实现的目标有所评价。

<?php

// example string data
$str = "key1 value1 key2 value2 key3 value3";

// clean string 
$str = str_replace("&nbsp", " ",$str);
$str = str_replace("\n", " ", $str);
$str = str_replace("\r", " ", $str);

$arr = explode(" ", $str);
$out = "<ul>";
$cnt = 1;

foreach($arr as &$val) {
    if ($cnt++ % 2 == 0) {
        continue;
    } else {
        $out = $out . "<li>" . $val . ": " . current($arr) . "</li>";
    }
}

$out = $out . "</ul>";

echo $out;

// output source
// <ul><li>key1: value1</li><li>key2: value2</li><li>key3: value3</li></ul>

?> 



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.qianduanheidong.com/blog/article/295555/abe280e3e51e3df04eb9/

来源:前端黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

5 0
收藏该文
已收藏

评论内容:(最多支持255个字符)