PHP str.replace: два или более одновременно?

скажем, у меня есть такая строка:

$str = {ааа,аа,а,аааааааа,ааааааа,аааааааа};

Я хочу удалить { и }, используя str_replace только один раз. Возможно?

я пробовал

$str = str_replace ('}', '{', '', $str);

$str = str_replace ('}'&'{', '', $str);

$str = str_replace ('}'||'{', '', $str);

$str = str_replace ('}''{', '', $str);

и ни один не работает...


person Community    schedule 11.05.2012    source источник
comment
возможный дубликат Str_replace для нескольких элементов   -  person Wesley Murch    schedule 11.05.2012
comment
Просто примечание: вам может понадобиться trim($input, '{}');, если вы хотите удалить только левую и правую стороны, это немного короче и точнее. Что такое это данные?   -  person Wesley Murch    schedule 11.05.2012


Ответы (4)


$str = str_replace(array('}', '{'), '', $str);

str_replace принимает массивы в качестве первого и второго аргумента

person zerkms    schedule 11.05.2012

вы можете дать массив для замены str, см.

$search = array("}", "{");
$text= str_replace($search, "", $text);

прочитайте об этом здесь: str-replace

person mbouzahir    schedule 11.05.2012

Вместо этого вы хотите использовать функцию preg_replace, которая будет заменять более одного элемента за раз, используя регулярное выражение. То, что вы хотите сделать, может быть достигнуто с помощью:

$str = preg_replace('/({|})/', '', $str);
person EmmanuelG    schedule 11.05.2012
comment
Или [{}], что немного лучше - person zerkms; 11.05.2012

$search = массив ("}", "{"); $text= str_replace($search, "", $text);

вы можете прочитать больше: - http://php.net/manual/en/function.str-replace.php

пример

<?php
// Order of replacement
$str     = "Line 1\nLine 2\rLine 3\r\nLine 4\n";
$order   = array("\r\n", "\n", "\r");
$replace = '<br />';

// Processes \r\n's first so they aren't converted twice.
$newstr = str_replace($order, $replace, $str);

// Outputs F because A is replaced with B, then B is replaced with C, and so on...
// Finally E is replaced with F, because of left to right replacements.
$search  = array('A', 'B', 'C', 'D', 'E');
$replace = array('B', 'C', 'D', 'E', 'F');
$subject = 'A';
echo str_replace($search, $replace, $subject);

 // Outputs: apearpearle pear
// For the same reason mentioned above
$letters = array('a', 'p');
$fruit   = array('apple', 'pear');
$text    = 'a p';
$output  = str_replace($letters, $fruit, $text);
echo $output;
?>
person Abhishek Jaiswal    schedule 11.05.2012