嗨(对不起,我的英语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)从其他不受我控制的站点输入的。
<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>

发布于 2015-07-05 22:08:12
我发现了这个问题,这要归功于@Rick,看到数据库的十六进制响应,我注意到两个空格是x20,但一个是xC2 xA0。在其他堆栈溢出的文章中,我发现xC2 xA0是一个不间断的空间,但是对于trim函数来说,这是不被识别的。解决方案是将其指定为函数的第二个参数:
$participante1 = trim($participante[0],"\x20,\xC2,\xA0");
$participante2 = trim($participante[1],"\x20,\xC2,\xA0");现在,空白空间被正确删除:3
感谢大家为解决这一问题提供帮助:)
发布于 2015-07-02 17:01:29
由于特殊字符的两边都有3个空格,所以将字符串拆分为3个空格。
就像这样:
<?php
foreach( $strings as $string) {
$players = explode(" ",$string);
print "Player 1: " . $players[0] . PHP_EOL;
print "Player 2: " . $players[2] . PHP_EOL;
}https://stackoverflow.com/questions/30857856
复制相似问题