PHP str заменить заменить пробелы на символы подчеркивания

есть ли причина, по которой я не вижу, почему это не работает?

    $journalName = $_POST['journalName'];
    $journalName = str_replace(' ', '_', $journalName);
    $_SESSION['journalName'] = $journalName;
    echo $_SESSION['journalName'];

выходные данные по-прежнему включают пробелы... Любые идеи были бы удивительными

4 ответов


Я предлагаю вам использовать это, поскольку он будет проверять как одно, так и несколько вхождений пробела (как предложил Лукас Грин).

$journalName = preg_replace('/\s+/', '_', $journalName);

вместо:

$journalName = str_replace(' ', '_', $journalName);

попробуйте это вместо этого:

$journalName = preg_replace('/\s+/', '_', $journalName);

объяснение: вы, скорее всего, видите пробелы, а не просто пробелы (есть разница).


для замены одного совпадающего символа используйте как str_replace:

$string = str_replace(' ', '_', $string);

для замены всех совпадающих символов используйте человек:

$string = preg_replace('/\s+/', '_', $string);

попробуйте это вместо этого:

$journalName = str_replace(' ', '_', $journalName);

удалить пробел