![]() |
|
Модераторы: Aliance, skyboy, MoLeX, ksnk |
![]()
|
|
| Sannis |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 14.8.2007 Где: Москва Репутация: 1 Всего: 13 |
Здравствуйте.
Есть строка следующего вида:
Нужно разобрать её на "имя функции" и массив аргументов. Аргументы могут быть либо числовыми, либо строками в кавычках или апострофах, число аргументов заранее неизвестно. P.S. Если есть какая-нибудь специализированная библиотека для таких вещей, подскажите -------------------- |
|||
|
||||
| Glip |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 473 Регистрация: 30.12.2006 Репутация: 1 Всего: 18 |
||||
|
||||
| Sannis |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 14.8.2007 Где: Москва Репутация: 1 Всего: 13 |
Во-первых, нужно фильтровать ввод, функции может не существовать или быть другое количество параметров, а во-вторых проблема не в том как вызвать, а как раз наоборот, как из строки вызова определить параметры.
-------------------- |
|||
|
||||
| Glip |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 473 Регистрация: 30.12.2006 Репутация: 1 Всего: 18 |
func_ get_ arg
func_ get_ args func_ num_ args или я всетаки не понял задачу. |
|||
|
||||
| Sannis |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 14.8.2007 Где: Москва Репутация: 1 Всего: 13 |
Этой функции может и не быть, есть просто строка текста. Представьте что вы пишите интерпретатор.
-------------------- |
|||
|
||||
| Glip |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 473 Регистрация: 30.12.2006 Репутация: 1 Всего: 18 |
с трудом могу представить зачем мне интерпретатор на php
но мысль понял. к сожалению ничего конкретного в таком случае не подскажу. |
|||
|
||||
| WildRAID |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 16.8.2007 Репутация: нет Всего: нет |
Пожалуйста:
Проверить в действии можно здесь: http://vizjerei.com/function.php strtok - полезная штука. Это сообщение отредактировал(а) WildRAID - 16.8.2007, 08:57 |
|||
|
||||
| Glip |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 473 Регистрация: 30.12.2006 Репутация: 1 Всего: 18 |
ну да, наверное. вот так с ходу: а если в строковом аргументе функции будет запятая?
вероятно получим "Некорректно обозначен аругмент №" ? ну вот например проверьте printf('%s', 'привет, привет') надо еще дорабатывать а в чем её преимущества перед explode() или split() ? Это сообщение отредактировал(а) Glip - 16.8.2007, 09:48 |
|||
|
||||
| WildRAID |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 16.8.2007 Репутация: нет Всего: нет |
Да, не подумал об этом.
Только в том, что она описана в той небольшой книжке по php, которая у меня есть. ;) Пока учусь, заодно форумы читаю. Ушел искать информацию про explode() и split(). |
|||
|
||||
| GiV |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 13.7.2006 Где: rus|53 Репутация: 2 Всего: 9 |
Если идти путем вложенных функций, то что-то вроде этого
Если вложенности не будет то
Это сообщение отредактировал(а) GiV - 17.8.2007, 18:34 |
||||
|
|||||
| GiV |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 13.7.2006 Где: rus|53 Репутация: 2 Всего: 9 |
Разделители внутри параметров
|
|||
|
||||
| sTa1kEr |
|
|||
|
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 5 Всего: 146 |
Здесь не проверяется корректность аргументов, но это уже легко доработать. |
|||
|
||||
| Sannis |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 14.8.2007 Где: Москва Репутация: 1 Всего: 13 |
GiV, sTa1kEr, Спасибо. Так и склонился к версии писать анализалор самому, регулярками тут не обойтись. 3 странички в блокноте, было чем на пляжу заняться, дебаг на бумаге - красота
-------------------- |
|||
|
||||
| Sannis |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 14.8.2007 Где: Москва Репутация: 1 Всего: 13 |
sTa1kEr, а библиотека токенайзера вкомпилирована в ядро PHP4/5 или его может не быть на некоторых серверах?
-------------------- |
|||
|
||||
| sTa1kEr |
|
||||
|
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 5 Всего: 146 |
Вероятность что она будет не доступна крайне мала. Только если специально при компиляции отключить. Tokenizer Functions
Это сообщение отредактировал(а) sTa1kEr - 30.8.2007, 08:34 |
||||
|
|||||
| Sannis |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 14.8.2007 Где: Москва Репутация: 1 Всего: 13 |
Ещё раз спасибо! Читал только русские доки, там таких подробностей нет
-------------------- |
|||
|
||||
| sTa1kEr |
|
|||
|
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 5 Всего: 146 |
||||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Тексты | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |