2017-01-14 16 views
0

私はデータベースに投稿を保存する必要があります。投稿のタイトルを投稿URLとして保存したいので、特殊文字やスペースを削除する必要があります。私はそれをしました。すべて正常に動作していますが、最後に文字列のスペースを与えると、最後にハイフンが次のように表示されます。
例abcd_
スペースがある場合は最後のハイフンを削除したいだけです。
私は今のところ、次のように試してみました -特殊文字とスペースを文字列から削除する

function clean($post_name) { 
       $post_name = str_replace(' ', '-', $post_name); 
       return preg_replace('/[^A-Za-z0-9\-]/', '', $post_name); 
      } 
      $post_url=clean($post_name); 

これが可能であるどのように?
ありがとうございます。

+0

私の答えに示したように 'trim()'しようとする – Gayan

答えて

1

が試しています文字列。より多くの場合

function clean($post_name) { 
       $name = trim($post_name); 
       $post_name = str_replace(' ', '-', $name); 
       return preg_replace('/[^A-Za-z0-9\-]/', '', $post_name); 
      } 
      $post_url=clean($post_name); 

http://php.net/manual/en/function.trim.php

+0

@これは私が欲しかったものです。ありがとうございました – Deepak

+0

@Deepakはあなたを助けてうれしく思います。 –

1

ここにあなたの問題を解決するにはstr_replace()

$post_name = str_replace(' ', '-', trim($post_name)); 
1

trim()しようthis.The trim()関数はの両側から空白や他の事前に定義された文字を削除するように私の1%

function clean($post_name) { 
    $post_name = trim($post_name); 
0

ただ、与えられた文字列の最後の2つの文字を確認してください。定義されている場合は部分文字列を割り当てます。 ifブロックに "定義された文字"をチェックして確認することができます。

$len = strlen($post_name) 

// check if last two characters are ' -' 
if (substr($post_name, $len -2, $len) === ' -') { 

    // assign all but the last two characters. 
    $post_name = substr($post_name, 0, $len -2); 

} 
関連する問題