Как удалить пробел в дополнение к специальным символам? - PullRequest
2 голосов
/ 02 марта 2010

в моем functions.php, если есть этот код:

echo '<a href="'.preg_replace('/\s/','-',$search).'-keyword1.html">'.urldecode($search).'</a>';

это удаляет специальные символы ..

но как я могу добавить добавить удалить пробел и заменить его - и удалить "

итак, если кто-то наберет "йо! Здесь" я хочу йо-здесь

Ответы [ 4 ]

3 голосов
/ 02 марта 2010

Попробуйте:

<?php

$str = '"yo! here"';

$str = preg_replace( array('/[^\s\w]/','/\s/'),array('','-'),$str);

var_dump($str); // prints yo-here

?>
2 голосов
/ 02 марта 2010

Если вы хотите заменить серию нежелательных символов одной чертой, вы можете использовать что-то вроде этого:

preg_replace('/\W+/', '-', $search);

Чтобы удалить окружающие кавычки, а затем заменить любое другое барахло тире, попробуйте следующее:

$no_quotes = preg_replace('/^"|"$/', '', $search);
$no_junk = preg_replace('/\W+/', '-', $no_quotes);
1 голос
/ 02 марта 2010

Это заменит несколько пробелов / "специальных" символов одним дефисом. Если вы этого не хотите, удалите «+».

Возможно, вы захотите удалить любые конечные дефисы, если что-то заканчивается восклицательным знаком / прочее.

<?php preg_replace("/\W+/", "-", "yo! here check this out"); ?>

0 голосов
/ 02 марта 2010

Вы можете удалить любые не слова :

preg_replace('/\W/', '-', $search);
...