0

Concrete 5 テーマにクラス名を追加しようとしています。スペースを削除してダッシュに置き換えてから小文字に変換するエレガントな方法は何ですか?

すでに大文字小文字を下げようとしましたが、スペースをダッシュ​​ (-) に置き換える必要もあります

私のコードは次のようになります。

<body class="<?php echo strtolower($c->getCollectionName()); echo ' '; echo strtolower($c->getCollectionTypeName()); ?>">

このように見えるはずです

<body class="home right-sidebar">

ありがとう。

4

6 に答える 6

2

この関数を使用できます...無制限の引数で動作します

関数

<?php

function prepare() {
    $arg = func_get_args ();
    $new = array ();
    foreach ( $arg as $value ) {
        $new [] = strtolower ( str_replace ( array (
                " " 
        ), "-", $value ) );
    }
    return implode ( " ", $new );
}

?>

使用法

<body class="<?php echo prepare($c->getCollectionName(),$c->getCollectionTypeName()); ?>">

デモ

<body class="<?php echo prepare("ABC CLASS","DEF","MORE CLASSES") ?>">

出力

<body class="abc-class def more-classes">   
于 2012-04-25T02:00:37.653 に答える
1
strtolower(preg_replace('/\s+/','-',trim($var)));
于 2012-04-25T01:57:11.210 に答える
1

preg_replaceを使用します:

strtolower(preg_replace('_ +_', '-', $c->getCollectionName())
于 2012-04-25T01:58:21.270 に答える
1

かなり簡単です:

を使用し$replaced = str_replace(" ", "-", $yourstring);ます。置換すると、スペースがダッシュに変換されます。

http://php.net/manual/en/function.str-replace.php

于 2012-04-25T01:55:00.840 に答える
1

文字列からスペースを削除するには、trim()を使用します。

スペースを別の文字に置き換えるには、str_replace()を使用します。

于 2012-04-25T01:55:10.273 に答える
0

正規表現を使用し、これらのスペースと特殊文字をダッシュ​​ではなくアンダースコアに置き換えます

<?php
$name = '  name word _ word -  test ! php3# ';
$class_name = class_name( $name );
var_dump( $class_name );

function class_name( $name ){
    return strtolower( trim( preg_replace('@[ !#\-\@]+@i','_', trim( $name ) ) , '_' ) );
}
?>
于 2012-04-25T02:10:17.437 に答える