За последние 24 часа нас посетили 40978 программистов и 1813 роботов. Сейчас ищет 841 программист ...

preg_replace дает NULL

Тема в разделе "PHP для новичков", создана пользователем biryukovm, 6 фев 2018.

  1. biryukovm

    biryukovm Активный пользователь

    С нами с:
    15 окт 2015
    Сообщения:
    54
    Симпатии:
    1
    Прикол такой вот, как оставить последний параметр в строке до /

    RegExr мне показывает все гуд
    [​IMG]
    а по коду не гуд
    PHP:
    1. $link = '/ru/catalog';
    2. $link = preg_replace('/[/].+[/]/g','',trim($link));
    3. var_dump($link);
    4.  
    5. // ответ NULL
     
  2. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    если у тебя не изменяется /ru/ используй str_replace
     
  3. Emilien

    Emilien Активный пользователь

    С нами с:
    30 июн 2016
    Сообщения:
    246
    Симпатии:
    156
    biryukovm нравится это.
  4. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Для PHP лучше использовать песочницу https://regex101.com/
    PHP:
    1. <?php
    2. $arr = [
    3.     '/ru/abc/def',
    4.     '/ru/abc',
    5.     '/en/abc/def',
    6.     '/en/abc',
    7. ];
    8.  
    9. $output = preg_replace('#^/[^/]+/#', '', $arr);
    Результат
    PHP:
    1. array(4) {
    2.   [0]=>
    3.   string(7) "abc/def"
    4.   [1]=>
    5.   string(3) "abc"
    6.   [2]=>
    7.   string(7) "abc/def"
    8.   [3]=>
    9.   string(3) "abc"
    10. }
     
    denis01 нравится это.
  5. biryukovm

    biryukovm Активный пользователь

    С нами с:
    15 окт 2015
    Сообщения:
    54
    Симпатии:
    1
    Штука хорошая стоит взять на заметку даже работает стабильнее чем preg_replace
     
    denis01 нравится это.