Smarty strpos и substr для получения текста после последней косой черты в URL

0

После многих поисков это самое близкое, что я получил. Я использую {$smarty.server.REQUEST_URI} чтобы получить вторую часть URL-адреса после http. Естественно, я получаю много текста1/text2/text3. Теперь я извлекаю последнюю строку текста, расположенную после последней косой черты.

из моего понимания я должен использовать strpos, чтобы получить позицию последнего forwardslash, в идеале начать с конца и остановиться на первой косой черте, которая на самом деле была бы последней, поскольку мы начали с права налево, а затем использовали substr для получения что-нибудь от этого strpos вперед.

Теги:
substr
smarty
strpos

2 ответа

1
Лучший ответ

Вы можете сделать это таким образом (если вы используете Smarty2):

{assign var="dirs" value="/"|explode:$smarty.server.REQUEST_URI}
{math equation ="x-y" x=$dirs|@count y=1 assign="last"}
{$dirs[$last]}

и таким образом:

{assign var="dirs" value="/"|explode:$smarty.server.REQUEST_URI}
{$dirs[$dirs|@count-1]}

если вы используете Smarty 3

  • 0
    Вау, это было сложно, так как я понятия не имел, что Smarty использует уравнение и взрывные переменные. Сейчас я изучаю, как уравнение достигло этого. Спасибо человек, записал это для дальнейшего использования в моем дневнике кодирования;)
0

Шаблон не подходит для такой обработки. Разберите строку запроса в PHP и присвойте шаблону значения, которые необходимо отобразить. Системы шаблонов были изобретены, чтобы отделить логику (обработку данных, выполненную в коде) от презентации (HTML и прочее, выполненное в шаблонах).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню