У меня есть такая строка:
$string1 = "asdfgsdfgsdf[quote=user9 postID=345]sdfgsdfgsdfgdsfg";
Я хочу получить все символы между "quote = "
и " "
в $ chars1, затем между "postID = "
и " "
в $ chars2 и, наконец, я хочу изменить все символы (включая) "[quote"
на "]"
в другой строке $string2='_test_'
;
Так что в конце концов я должен получить
$chars1 = "user9";
,
$chars2 = "345";
,
и преобразовал $ string1
$string1 = "asdfgsdfgsdf_test_sdfgsdfgsdfgdsfg";
Как я могу это сделать ?
Вы можете использовать preg_replace_callback
с регулярным выражением с двумя захваченными группами:
$string1 = "asdfgsdfgsdf[quote=user9 postID=345]sdfgsdfgsdfgdsfg";
$string1 = preg_replace_callback (
'/\[quote=(\S*)\s+postID=([^]\s]*)[^]]*]/',
function($m) use(&$chars1, &$chars2) {
$chars1 = $m[1];
$chars2 = $m[2];
return "_test_";
},
$string1
);
var_dump($string1, $chars1, $chars2);
Выход:
string(34) "asdfgsdfgsdf_test_sdfgsdfgsdfgdsfg"
string(5) "user9"
string(3) "345"
Прежде чем спрашивать Как я могу это сделать?, вы должны спросить Что я сделал? и действовать соответственно.