Как мне удалить зарезервированный символ Windows в PHP?

#php

#php

Вопрос:

Я хотел бы удалить любой зарезервированный символ Windows из моей строки. Я должен удалить эти символы :

 ,/,:,*,?,",<,>,|, and spaces
  

Как мне удалить эти символы?

Пример:

 $string = "21/002-4/ASG* -47";
  

Результат:

 "21002-4ASG-47"
  

Комментарии:

1. str_replace() это один из способов. Чего вы пытаетесь здесь достичь? Могут быть лучшие альтернативы.

2. Для имени файла?

3. Я не знаю PHP, но он кажется похожим на Perl. В Perl это может привести вас на правильный путь: $x="23*23;jh:k>m"; $y=($x =~ y/\/:*?"<>//dr) . $y будут удалены все символы из $x списка.

4. У меня есть текст, содержащий эти символы. Я бы хотел их удалить.

5. Мы сможем направить вас в правильном направлении, если вы немного объясните, для чего вы это используете. Есть много способов удалить Рим, но все они разные.

Ответ №1:

 $string = "21/002-4/ASG* -47";
$new = preg_replace('/[\/:*?"<>|s] /', '', $string);
echo $new;
  

поможет, вот живой пример:

https://3v4l.org/b8IiE

https://www.phpliveregex.com/p/rmB

Комментарии:

1. у него ошибка. Сообщение: preg_replace(): неизвестный модификатор ‘:’

Ответ №2:

Вы также можете получить результат с '/[^A-Za-z0-9-]/' шаблоном, используя preg_replace()

 $string='21/002-4/ASG* -47';
echo preg_replace('/[^A-Za-z0-9-]/', '', $string);
  

Результат:

 21002-4ASG-47
  

Согласно вашему комментарию, если вы хотите удалить только определенные символы (определенные), то str_replace есть другое решение. Еще одна вещь, str_replace которую нужно быстро сделать preg_replace() .

Пример с str_replace() :

 $string='21/002-4/ASG* -47'; // your string
$char = array('/','*',' '); // defined all characters which need to be removed
echo str_replace($char, "", $string); // result should be 21002-4ASG-47
  

Комментарии:

1. это удаляет все специальные символы? Я только хочу удалить зарезервированный символ из Windows и пробелов

2. в соответствии с вашим ожидаемым результатом, он удалит все специальные символы @ashura91

3. ДА. это стало моим ожидаемым результатом. Но я не хочу удалять все специальные символы, только определенный символ

4. в частности, вы можете использовать str_replace . @ashura91

5. @ashura91: проверьте пример с обновленным str_replace в ответе