Как заменить подстроку как переменную в PHP? - PullRequest
0 голосов
/ 09 апреля 2011
$arr['CONST_A'] = 'D:\A';
$arr['CONST_A_B'] = 'D:\A\B';

convert('D:\A\B\C', $arr) должен выдать CONST_A_B . '\C'

Как реализовать такую ​​функцию?

1 Ответ

0 голосов
/ 09 апреля 2011

Это немного громоздко.Он сортирует массив const по длине строки, поэтому сначала он находит самые длинные возможности.Затем он сравнивает каждую строку и при попадании находит исходное имя константы.

function convert($str, $arr) {
    $search = array_combine($arr, array_map("strlen", $arr));
    arsort($search);
    foreach ($search as $part=>$len) {
       if (strncmp($str, $part, $len) == 0) {
           $const = array_search($part, $arr);
           return "$const . '" . substr($str, $len) . "'";
       }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...