ОсновноеRadiotalkПользовательское
Программирование
6   •   Посмотреть все темы

preg_replace

 

6703
Андрей @ZloVeЩиЙ
Доброй ночи кто не спит)
Помогите решить дилемму, есть php функция :
function add_nav_class($output) {
$output= preg_replace('/<a/', '<a class="button-cdm md-trigger" rel="modal-16"', $output, -1);
return $output;
}

-- которая видоизменяет
ссылку из меню, в моем случае добавляет два класса и атрибут rel.
дилемма в том что видоизменяет эта функция все ссылки из менюшки, (каждой ссылке вешает class="button-cdm md-trigger" rel="modal-16")
как заставить функцию действовать только для первой ссылки или для последней например?

2970
удалён @Foggy
а как меню-то у тебя выводится?
а вообще, по-моему, регуляркой заменять всю ссылку странно.
я бы завёл переменную какую-нибудь, в неё записал, что добавляется и в выводе меню добавил её вывод. при выводе каждой ссылки проверялось бы, нужен ли этот триггер и если нужен, то в переменную вписано нужное, а если не нужен - переменная пуста.

7094
--- @Render
ZloVeЩиЙ пишет:

Доброй ночи кто не спит)
Помогите решить дилемму, есть php функция :
function add_nav_class($output) {
$output= preg_replace('/<a/', '<a class="button-cdm md-trigger" rel="modal-16"', $output, -1);
return $output;
}

-- которая видоизменяет
ссылку из меню, в моем случае добавляет два класса и атрибут rel.
дилемма в том что видоизменяет эта функция все ссылки из менюшки, (каждой ссылке вешает class="button-cdm md-trigger" rel="modal-16")
как заставить функцию действовать только для первой ссылки или для последней например?

Смотрим в **********

limit -Максимально возможное количество замен каждого шаблона для каждой строки subject. По умолчанию равно -1 (без ограничений).
Меняем на 1 - получаем вхождение только в кол-ве = 1.
Если нужно иначе, например только 1е вхождение и последние, то наверное сначала получать массив всех найденных <a/ с помощью preg_match и затем уже оперировать с этим массивом, выводя и заменяя нужные элементы (по счёту).

20089
Dimitry @Dimitry
да проблема в том что надо заменять не это '/<a/'
а что-то уникальное от меню)

6703
Андрей @ZloVeЩиЙ
решил уже...
переписал по уникальному айди,
Дима был ближе всего)