2017-01-14 8 views
0

Ich muss Posts in der Datenbank gespeichert werden. Ich möchte Post-Titel als Post-URL speichern, so dass ich Sonderzeichen und Leerzeichen entfernen muss. Ich habe das gemacht. Alles funktioniert gut, aber wenn ich endlich Platz für die Saite gebe, zeigt es wie folgt Bindestrich.
Ex abcd_
Ich möchte nur den letzten Bindestrich entfernen, wenn ein Leerzeichen vorhanden ist.
Ich habe versucht, so weit wie folgt -Entfernen von Sonderzeichen und Leerzeichen aus Zeichenfolge

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

Wie ist das möglich?
Danke.

+0

Versuchen Sie 'trim()' wie ich in meiner Antwort gezeigt habe – Gayan

Antwort

1

Versuchen Sie, wie this.The trim() Funktion Leerzeichen und andere vordefinierte Zeichen von beiden Seiten ein entfernt Zeichenfolge.

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

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

+0

@ Das ist genau das, was ich wollte. Vielen Dank – Deepak

+0

@ Deepak froh, Ihnen zu helfen ... Antwort zu akzeptieren und viel Glück voraus. –

1

Versuchen Sie, trim() vor str_replace()

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

Ihr Problem hier zu beheben, ist mein 1%

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

Überprüfen Sie einfach die letzten beiden Zeichen des Strings. Weisen Sie dann die Teilzeichenfolge zu, wenn sie wie definiert ist. Sie können mehr "definierte Zeichen" in den if-Block einchecken.

$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); 

} 
Verwandte Themen