За последние 24 часа нас посетил 17901 программист и 1286 роботов. Сейчас ищут 1477 программистов ...

url обработка, вырезание всего лишнего)

Тема в разделе "Регулярные выражения", создана пользователем Nazorei, 25 сен 2007.

  1. Nazorei

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

    С нами с:
    1 фев 2007
    Сообщения:
    228
    Симпатии:
    0
    например ссылка может быть

    script.php?pp=1
    или
    drr/script.php
    или ещё бог знает как

    а как сделать чтобы осталось только имя файла, а остальное убрать?,
    из примера нужно чтобы осталось только script

    помогите пожалуйста, оч нужно)
     
  2. Nazorei

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

    С нами с:
    1 фев 2007
    Сообщения:
    228
    Симпатии:
    0
    спасибо,) уже решил)
     
  3. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Надеюсь, как-то так? :)
    Код (Text):
    1. basename(reset(explode('?', $link)))
    Регулярные выражения тут не нужны.
     
  4. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    substr($_SERVER["SCRIPT_NAME"],1,-4);
     
  5. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    PHP:
    1. <?php
    2. $file = '/test/file.php?param=1';
    3. print strtok(basename($file), '?');
     
  6. vb

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

    С нами с:
    6 июн 2006
    Сообщения:
    911
    Симпатии:
    0
    Адрес:
    Saint-Petersburg
    Sergey89
    зачем strtok?
     
  7. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Чтобы зохавать всё до символа '?'.
     
  8. vb

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

    С нами с:
    6 июн 2006
    Сообщения:
    911
    Симпатии:
    0
    Адрес:
    Saint-Petersburg
    Sergey89, да пардон, переглючило. Забыл, что basename берет только имя файла, а не весь путь.
    Но так твой код будет делить только имя файла - без пути.


    Варианты решения:
    PHP:
    1.  
    2. <?php
    3. $file = '/test/file.php?param=1';
    4.  
    5. //#1
    6. print dirname($file).'/'.basename($file);
    7.  
    8. //#2
    9. $url = parse_url($file);
    10. print $file['path'];
    11. ?>
     
  9. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    vb
    :)
     
  10. vb

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

    С нами с:
    6 июн 2006
    Сообщения:
    911
    Симпатии:
    0
    Адрес:
    Saint-Petersburg
    Sergey89
    гы гы :) Я точно не проснулся :)) Все больше с просони не пишу :)))