Подтвердить что ты не робот

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

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

    $string = $someLongUserGeneratedString;
    $replaced = str_replace(' ', '_', $string);
    echo $replaced;

Вывод все еще включает пробелы... Любые идеи были бы потрясающими

4b9b3361

Ответ 1

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

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

вместо:

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

Ответ 2

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

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

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

Ответ 3

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

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

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

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

Ответ 4

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

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

для удаления пробела