-1

これが、Doe、JではなくDoeJとして入力された名前を検索エンジンに取得させようとしていることです。

これが私のコードです:

$sql_where = array();

if (isset($_GET['name'])) {

    echo "Searched: {$_GET['name']}<br>";

    $names = explode(' ', trim(preg_replace('/ +/', ' ', $_GET['name'])));
    $names_cnt = count($names);

    if (2 == $names_cnt) {

        foreach ($names as $name_idx => $name) {

            if (($name_idx+1) == $names_cnt) {
                // last one
                $sql_where[] = "
                    (full_name like '% {$name}%')
                    ";
            } else {
                // first one
                $sql_where[] = "
                    (full_name like '{$name}%')
                    ";
            }
        }
    } else {

        $sql_where[] = "
            (full_name like '" . $DB->cleanString($_GET['name']) . "%')
            ";

私は試しまし/[^a-zA-Z0-9 ]/たが、失敗した他のいくつかのバリエーションがあります。

4

1 に答える 1

2
echo preg_replace( "`[^a-zA-Z0-9]+`", " ", $string); 
//replaces all non alpha numeric characters as " " 
//(and will not have duplicate spaces)

デモ: http://codepad.org/7Ltx3kcr

于 2012-05-23T16:00:23.893 に答える