2015-01-14 3 views
1

Я пытаюсь добиться следующего:preg_replace заменить двоеточие и обратный слэш

$subject = 'string://example.com/'; 

$search1 = ':'; 
$search2 = '/'; 
$replace = '_'; 

Желаемый результат:

$string = string_example1.com_example.com_; 

Есть ли способ достижения этой цели с preg_replace?

$string = preg_replace(':', $replace, array($subject)); 

Это неправильно, я знаю, но мне нужно, чтобы удалить подсечно и толстую кишку и заменить подчеркивание, и везде, где они собираются вместе заменить его только лишь подчеркивает

Благодаря

+0

preg_replace ('/ (: \/\/| \ /) /', '_', $ субъект); – Penny

ответ

0

Попробуйте это. Используйте разделители в шаблоне:

preg_replace('/(:\/\/|/\{1})/', '_', $subject); 
+0

спасибо, что это заменяет, но я могу заменить только одно подчеркивание, где у меня есть ': & /' both together – Penny

+0

прямо сейчас он возвращает результат как 'string__example1.com_example.com_' – Penny

+0

Сортировка: D спасибо – Penny

1

я думаю str_replace было бы удобнее, если вы пытаетесь заменить специфический характер, и str_ireplace для массива символов

EDIT

Пример:

$subject= str_ireplace(array(':','/'),'_', $subject); 

Я думаю, что он будет идти, как это.

+0

это комментарий. или привести пример. – vaso123

1

ВХОД:

$subject = 'string://example.com/'; 

$string = str_replace('___', '_', preg_replace('/[:\/]/', '_', $subject)); 

ВЫВОД:

string_example.com_ 

Надежда Это помогает

0

Вот что «d сделать:

$subject = 'string://example.com/'; 
$string = preg_replace('~://|/~', '_', $subject); 
echo $string,"\n"; 

Выход:

string_example.com_ 
Смежные вопросы