Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Приветствие и сразу ламотский вопрос про sscanf  (Прочитано 8305 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
Алик
Постоялец

kz
Offline Offline

« : 29-03-2006 05:38 » 

Всем привет!!
Я в ПХПшники недавно переквалифицировался! (из c++шников!)
так что приветствую уважаемый форум в новом качестве Что, съел?

вопрос: покрутил sscanf так и эдак (врать не буду, не досканально). вроде, мощная штука.
кто подскажет как можно красиво с ее помощью (или как-то еще) решить задачу: из строки, завершающейся слешем получить ее же но без слеша, а если нет завершающего слеша - то без изменений?

Код:
if ($path[strlen($path)-1]=='/')return substr($path,0,strlen($path)-1);
else return $path;
не  предлагать!
« Последнее редактирование: 15-12-2007 16:40 от Алексей1153++ » Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 29-03-2006 09:14 » 

Код:
<?php
preg_match
(&#39;%(.*?)/?%&#39;, $input_string, $parts);
echo $parts[1];
?>
Намного удобнее пользоваться регулярными выражениями! Учи - не пожалеешь!
« Последнее редактирование: 15-12-2007 16:41 от Алексей1153++ » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алик
Постоялец

kz
Offline Offline

« Ответ #2 : 04-04-2006 07:16 » 

Да, регулярки рулят. пихаю их теперь везде, куда только можно.

в связи с чем следующий вопрос.

Код:
preg_match("%(?:.*/)?((^/)*)%","path/subpath/file.php",$a);
var_dump($a);

по идее, в $a[1] должно лежать file.php.
Где ошибка??

p.s., я знаю, что есть другие способы (например, через explode, что я сейчас и сделаю). но хотелось бы знать, что не так в этом коде.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 04-04-2006 11:55 » 

%^(.*/)?([^/]*)$%

Будь внимательнее!
Маркеры начала и конца строки лучше не игнорировать - меньше ошибок будет.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алик
Постоялец

kz
Offline Offline

« Ответ #4 : 04-04-2006 12:01 » 

Точно!
ты ж посмотри...
ну спасибо!
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 04-04-2006 12:05 » new

Алик, регекспы лучше заключать в одинарные кавычки.
Если нужен бекслеш в выражении, то нужно ставить в 4 (!) раза больше - половину "съест" php, половину - само pcre.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алик
Постоялец

kz
Offline Offline

« Ответ #6 : 04-04-2006 12:19 » 

Улыбаюсь)) прикол!
учту...
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines