2011-06-30 13 views
4

CSSクラスを使用して背景画像に変換する必要がある動的メニューがあります。私はラベルをCSSの安全なクラス名に変換したいと思います。クラスを安全な名前に変換する

ている例: - 文字列に変換: - のみ-Zおよび1-9を含む文字列に「製品&ひまわり」 を。上記は、クラス名として使用できる検証文字列に変換されます。たとえば、 'products_sunflowers'

+1

ないあなたがここに求めているものを確認してください。問題の定義にもっと時間を費やして、あなたが試したことのコード例を教えてください。 –

答えて

4

preg_replaceを試しましたか?

上記の例では「ProductsSunflowers」が返されます。

preg_replace('/\W+/','',strtolower(strip_tags($className))); 

それは、文字以外のすべてを除去小文字に変換し、すべてのHTMLタグを削除します:私はこれを使用

preg_replace('#\W#g','',$className); 
+2

技術的には、これが本当にCSS安全である場合は、クラス名が数字で始まらないようにする必要があります。私はpreg_replace( '/ \ W + /'、 ''、$ className)を使って、文字以外の文字を取り除いていきます。 – Pooch

+0

@Pooch \ Wは、有効なハイフンを取り除きます... –

+0

はい、そうですが、目的が単純にCSSセーフなクラス名を作成するだけであれば、これが達成されます。任意の有効なオプションのセットですが、おそらく最も単純なものの1つです。ハイフンが本当に重要であれば、正規表現をもっと完全にすることができると確信しています。あなたはおそらく受け入れられた答えにこのコメントを追加すべきでしょう。 – Pooch

0

私は、あなたの問題を解決するために、サンプルコードを書いたことが

<?php 
# filename s.php 
$r ='@_+(\w)@'; 
$a='a_bf_csdfc__dasdf'; 
$b= ucfirst(preg_replace_callback(
    $r, 
    function ($matches) { 
     return strtoupper($matches[1]); 
    }, 
     $a 
    )); 
echo $a,PHP_EOL; 
echo $b,PHP_EOL; 

a_bf_csdfc__dasdf s.php

-f $ phpのABfCsdfcDasdf

0

文字列を役に立てば幸い:dome/some.thing-to.uppercase.words

結果:DomeSomeThingToUppercaseWords

(あなたのパターンOFCを追加)

var_dump(
    str_replace(
     ['/', '-', '.'], 
     '', 
     ucwords(
      $acceptContentType, '/-.' 
     ) 
    ) 
); 
関連する問題