PHPで文字列操作に問題があります。私は ""または "_"で区切られた単語を持つ文字列パラメータを取る関数を書いています。私はすべてのアルファベット以外の文字を取り除き、 " - "で区切られた単語を返す関数を必要とします。 _「の代わりに「の」または」 - 「」PHPでstr_replaceとpreg_replaceを操作するのに問題があります
function cleanCategoryForUrl($strCategory){
$newCategory = str_replace('_', '-', $strCategory); //First replacement
echo ($newCategory);
$newCategory = str_replace(' ', '-', $newCategory); //Second replacement
echo ($newCategory);
$newCategory = preg_replace('/[^a-z-]/i', '', $strCategory); //Final replacement
echo ($newCategory);
return $newCategory;
}
第一および第二の置換が取得で区切られた単語を行います: これは私がこれまで持っているものです。最終的な置換は、アルファベットでないか、または " - "でないすべての文字の赤を取得します。
しかし、コードをテストすると、最終的な置換後に予期しない結果が得られます。 「Home_Health」の入力と
私はこのプリント得る:予想通り
Home-Health
Home-Health
HomeHealth
は、最初の2つの出力がありますが、3つ目は除去 - (起こっていないはずである)「」を。正規表現パターンに何か問題があると思われますが、http://gskinner.com/RegExr/でテストするとうまくいきます。私はregexを使うのが初めてで、何が間違っているのか理解しません。助けてください
OMG私はこのような間違いを犯したと信じられません。私は$ newCategoryをpreg_replaceに渡すつもりだった。私はそのパターンをチェックしていましたが、他のパラメータが正しいことを確認することはありませんでした。それを指摘してくれてありがとう。 –
いつかそれは私と一緒に起こる..あなたは歓迎ビラル.. – eHussain