首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >修剪功能不起作用

修剪功能不起作用
EN

Stack Overflow用户
提问于 2015-06-16 02:26:30
回答 2查看 1.5K关注 0票数 0

嗨(对不起,我的英语xD),

我在MySql中获取我的数据库的数据,这个数据(一对播放器的格式'Player 1-Player 2')。我用explode函数通过字符-来剪切这个函数,因此我得到了'Player 1‘和’Player 2‘字符串。我尝试删除开头和结尾的空白,并使用trim函数,但这是行不通的。我怀疑这个问题类似于-字符,我的键盘上的普通-没有用after函数拆分字符串,我不得不去PHPMyAdmin复制一个现有字符串的-字符并将其粘贴到第二个爆炸函数参数中,然后爆炸函数工作。

我尝试使用相同的-字符(在PHPMyAdmin中登录,复制一个空格并将其粘贴为trim函数的第二个参数,但这次不起作用:( ) )。

也尝试用str_replace函数(无论消除什么空白)和不工作,也尝试使用preg_replace函数等。什么都没有用,因为很明显,在DB中保存的空白与我的键盘不一样,我怀疑问题与字符集或排序规则有关,但我不知道该做什么,因为表格、链接、PHP的字符集和其他东西都在UTF-8和UTF 8-西班牙语-ci排序和字符集中。

Aclaration:数据的输入是由xdom (PHP)从其他不受我控制的站点输入的。

代码语言:javascript
运行
复制
<tbody>
<?php while ($partidos = mysqli_fetch_array($sql)) { ?>
    <tr>
        <td class="center"><?php echo $partidos['fecha']; ?></td>
        <td><?php $participante = explode("₋", $partidos['jugadores']);
            $participante1 = trim($participante[0]);
            $participante2 = trim($participante[1]);

            echo trim($participante1) . "<br>vs<br>" . trim($participante2);
            ?></td>
        <td><?php if ($partidos['estado'] == 0) { ?> En Curso<?php } elseif ($partidos['estado'] == 1) {
                if ($partidos['alerta'] == 0) { ?> Terminado<?php } else { ?>Terminado - Error <i
                    class="fa fa-exclamation-triangle"></i><?php }
            } ?></td>
        <td><?php if ($partidos['alerta_medica'] == 1) { ?> Si <i class="fa fa-2 fa-medkit"
                                                                  style="color:#C00;"></i><?php } else { ?> No<?php } ?>
        </td>
        <?php if ($_SESSION['tipo'] == 1 || $_SESSION['tipo'] == 2) { ?>
            <td class="center">
            </td>
        <?php } ?>
    </tr>
<?php } ?>
</tbody>

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-05 22:08:12

我发现了这个问题,这要归功于@Rick,看到数据库的十六进制响应,我注意到两个空格是x20,但一个是xC2 xA0。在其他堆栈溢出的文章中,我发现xC2 xA0是一个不间断的空间,但是对于trim函数来说,这是不被识别的。解决方案是将其指定为函数的第二个参数:

代码语言:javascript
运行
复制
$participante1 = trim($participante[0],"\x20,\xC2,\xA0");
$participante2 = trim($participante[1],"\x20,\xC2,\xA0");

现在,空白空间被正确删除:3

感谢大家为解决这一问题提供帮助:)

票数 1
EN

Stack Overflow用户

发布于 2015-07-02 17:01:29

由于特殊字符的两边都有3个空格,所以将字符串拆分为3个空格。

就像这样:

代码语言:javascript
运行
复制
<?php

foreach( $strings as $string) {
    $players = explode("   ",$string);
    print "Player 1: " . $players[0]  . PHP_EOL;
    print "Player 2: " . $players[2]  . PHP_EOL;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30857856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档