0

変数から句読点を削除しようとしていますが、機能していません。考えられることはすべて試しました。私はとても疲れていて、それは私が見ていないものだと確信しています. どんな助けでも大歓迎です。

コード:

$memberlinksafe = $_POST["entity_name"];

function strip_punctuation($memberlinksafe) {
    $memberlinksafe = strtolower($memberlinksafe);
    $memberlinksafe = preg_replace("/[:punct:]+/", "", $memberlinksafe);
    $memberlinksafe = str_replace(" +", "", $memberlinksafe);
    return $memberlinksafe;
} 

何が表示されないのですか? $_POST元の変数を返すだけです

4

1 に答える 1

1

どうして

$memberlinksafe = str_replace(" +", "", $memberlinksafe);

そしてそうではない

// This function removes spaces, \t (tabs), \r and \n. All are spaces!
$memberlinksafe = preg_replace('~[\\s]+~', '', $memberlinksafe);

スペースを削除するには?

更新

// Remove punctuation
$memberlinksafe = preg_replace('~[[:punct:]]+~', '', $memberlinksafe);
// Remove spaces
$memberlinksafe = preg_replace('~[\\s]+~', '', $memberlinksafe);
// Lowercase
$memberlinksafe = strtolower($memberlinksafe);

または次のようにします。

// Keep only alphanumerics and lowercase it
$memberlinksafe = strtolower(preg_replace('~[^[:alnum:]]+~', '', $memberlinksafe));

なぜだめですか\W

これのため:

// outputs 'testing_something'
var_dump(preg_replace('~[\\W]+~', '', 'testing_something'));
// outputs 'testingsomething'
var_dump(preg_replace('~[[:punct:]]+~', '', 'testing_something'));

_実は句読点です。

于 2013-06-17T19:20:24.617 に答える