Я очень новичок в PHP и на этом форуме. Я не знаю, будет ли мой вопрос подходящим для этого форума или нет.PHP Динамическая манипуляция строк
У меня есть строка $filter=([operator] = 'IDEA') AND ([type] = 'R,T');
, но в этой строке есть динамическое значение для значения [типа] , что означает «R, Т» величина [тип] = может быть [типа] = 'R, Т, Р "..........
Теперь содержание каждого символа в [тип] должен быть изменен, как -
([operator] = 'IDEA') AND ([type] ='R' OR [type] = 'T')
или
([operator] = 'IDEA') AND ([type] ='R' OR [type] = 'T' OR [type] = 'P')
..... ............. .......
Для этого я написал небольшой код и занимает около 1 дня.
$text = explode("[type] =",$filter);
$myreplacetext = "[type] = ".$text[1];
$text2 = preg_replace('/[^a-zA-Z0-9_ %\[\]\.,]/s', '', $text[1]);
$string = explode(",", $text2);;
$i=0;
foreach($string as $value){
$value = trim($value);
if($i==0)$mynewtext = "'".$value."'";
else $mynewtext = $mynewtext." OR [type] = '".$value."'";
$i++;
}
$mynewtext = $mynewtext.")";
$filter = str_replace($text[1],$mynewtext,$filter);
Любой, пожалуйста, любезно наставит меня, чтобы написать этот код в простой способ
Вам необходимо написать [рекурсивный парсер спуска] (http://en.wikipedia.org/wiki/Recursive_descent_parser). Это намного сложнее, чем просто разрастание и регулярные выражения. – Barmar
Есть ли конкретный вопрос, на который вы хотели бы ответить? Попросив нас переписать код для вас намного раньше предложения, такого как @ Barmar's, не будет хорошо. – Qix