2015-06-16 80 views
0

喜(對不起,我的英語XD),修剪功能不起作用

我以我在MySQL數據庫中的數據,這個數據(對選手在格式「球員1 - 玩家2」)。我用explode功能按字符-將其切分,因此我得到'玩家1'和'玩家2'字符串。我嘗試用trim功能刪除開頭和結尾處的空格,但這不起作用。我懷疑這個麻煩和-這個字符差不多,我的鍵盤的普通-不用分割字符串的爆炸功能,我不得不去PHPMyAdmin並且複製一個現有字符串的-字符,並將其粘貼到第二個爆炸函數參數,在此之後,爆炸函數工作。

我嘗試同樣的-字符(在phpMyAdmin登錄複製一個空白並粘貼此爲trim函數的第二個參數,但這個時候不工作:()。

還與str_replace功能嘗試(無重要的是消除了差距),不工作,也嘗試使用preg_replace函數等......沒有任何工作,因爲顯然DB中保存的空白區與我的鍵盤不一樣,我懷疑問題是與charset或整理,但我不知道我該怎麼做,因爲表,鏈接,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

+0

你試試Mysql修剪還是PHP函數? –

+0

PHP函數可能會將字段字符串拆分爲' - '字符,並在mysql中修改每個結果名稱? – Jjsg08

+0

在myphpadmin中您是否看到空格或 ? –

回答

0

既然你有特殊字符的兩側3個空格3個空格分開的字符串。

這樣的:

<?php 

foreach($strings as $string) { 
    $players = explode(" ",$string); 
    print "Player 1: " . $players[0] . PHP_EOL; 
    print "Player 2: " . $players[2] . PHP_EOL; 
} 
+0

感謝您的回覆,但數據格式爲「玩家1 - 玩家2」,分割後但「 - 」符號空格留在最後一名玩家名字,開始第二個玩家的主要問題是第二個玩家的初始空白。 – Jjsg08

+0

你可以發佈我的代碼的輸出?你可以發佈這個'SHOW CREATE TABLE \ jugadores \'' –

+0

的結果嗎?當然,你輸出的代碼是:** Player 1:OP Azcoitia/P G. Thombare J J Ladurner/N Verster 注意:Undefined offset :2位於第160行的C:\ xxxxxxxxxxxxxxxxx \ public_html \ site \ dashboard.php 播放器2:**並且查詢結果爲:[link](http://i.imgur.com/9v5e5c6.png) – Jjsg08

1

我發現由於@Rick詹姆斯的問題,看我注意到有兩個空間是20倍,但一個是XC2 XA0數據庫的十六進制響應。閱讀其他帖子的stackoverflow,我發現xC2 xA0是一個非休息空間,但這不被識別的修剪功能。解決的辦法是將其指定爲函數的第二個參數:

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

現在空格被正確刪除:3

感謝所有給你的幫助來解決這個:)