2016-04-12 10 views
1
$post_name = strtolower(preg_replace('/[^a-z0-9]+/i', '-', $post_title)); 

このコードは、投稿のタイトルの末尾にスペースまたは)を付けるとエラーになります。 これを修正するには? それはどういう意味ですか?'/[^a-z0-9]+/i'wordpressのpost_nameにpreg_replace関数を使う方法は?

ありがとうございました。

+0

の各ステップではなく、もう一方の端に開始することができます。あなたはタイトルとして何を許可したいですか?何か?または何か制限はありますか? – Andreas

+0

ここでは、preg_replaceの動作をhttp://www.phpliveregex.com/p/fiJで確認できます(preg_replaceボタンを先に押してください)。この関数は、a-zおよび0-9を除くすべての文字を ' - 'で置き換えます。私はそれがpreg_replaceではなくエラーを生成するstrtolower()だと思います。上記のように、あなたが何をしたいのか私に教えてください。誰かがあなたを助けます。 – Andreas

+0

地球が呼んでいますので、拾ってください。 – Andreas

答えて

0

[OK]を..
はこれを試してみてください。「 - 」小文字、それは動作しません

$string = trim(strtolower("This is my article (part 1) ")); 
$string = preg_replace("/[^a-z0-9]+/i", "-", $string); 
$string = preg_replace("/-$/", "", $string); 

私がコメントで書いたように、私はこの問題は、()は、それを作るしようとするstrtolowerであると信じています。 まず、普通の文字を小文字にしてから、pregreplaceを使ってa - を作る。 そして最後に削除するプレグレプレイスを2つ追加します。

最初の2行はおそらくに行うことができます。

$string = preg_replace("/[^a-z0-9]+/i", "-", trim(strtolower("This is my article (part 1) "))); 

しかし、私はそれを明確にしたかった、コード

+0

$ string = strtolower( "これは私の記事です(パート1)"); 私は最初から削除したいと思っています –

+0

最初のスペースが " - "になることを意味していますか?さて、トリム($文字列)を使用してみてください。他のすべての前に。 – Andreas

+0

@ kostjakarta.com私は答えを – Andreas

関連する問題