php - 修剪功能不起作用

标签 php mysql utf-8 character-encoding trim

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

我正在 MySql 中获取数据库的数据,该数据(一对玩家,格式为“玩家 1 - 玩家 2”)。我用 explode 函数按字符 - 剪切了它,因此我得到了“Player 1”和“Player 2”字符串。我尝试使用修剪功能删除开头和结尾的空格,但这不起作用。我怀疑这个问题与其他 - 字符类似,我的键盘的正常 - 不会用爆炸功能分割字符串,我不得不去 PHPMyAdmin并复制一个现有字符串的 - 字符并将其粘贴到第二个爆炸函数参数中,在此之后,爆炸函数即可工作。

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

还尝试使用 str_replace 函数(无论消除什么间隙)并且不起作用,也尝试使用 preg_replace 函数等...没有任何效果,因为显然数据库中保存的空白与我的键盘不一样,我怀疑问题与字符集或排序规则有关,但我不知道我应该做什么,因为 PHP 的表、链接、字符集和其他内容采用 UTF-8 和 utf8-spanish-ci 排序规则和字符集。

声明:数据的输入是由 xdom (PHP) 从其他站点进行的,不受我控制。

<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>

Screenshot from command line

最佳答案

感谢@Rick James,我发现了这个问题,观察数据库的十六进制响应,我注意到两个空格是x20,但一个是xC2 xA0。在阅读 stackoverflow 的其他帖子时,我发现 xC2 xA0 是一个不间断空格,但修剪功能无法识别它。解决方案是将其指定为函数的第二个参数:

$participante1 = trim($participante[0],"\x20,\xC2,\xA0");
$participante2 = trim($participante[1],"\x20,\xC2,\xA0");

现在空格已正确删除:3

感谢大家帮助解决这个问题:)

关于php - 修剪功能不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30857856/

相关文章:

java - 错误查询

mysql - 如何根据mysql中的条件更改连接类型?

mySQL - 获取 2 个最常见的项目

ruby - 如何在 Ruby 中将字符串转换为 UTF8

javascript - PHP 中的 HTTPPost 到 JSON

php - 如何根据值将数组拆分为两个不同的数组?

php - 如何将数据库值存储为逗号分隔?

php - MySQL - 获取星期几

php - 如何在 shell 中递归正则表达式重命名?

java - 无法显示特定的unicode字符