PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (5): [1] 2 3 4 5 »

> Найдено сообщений: 74
BAS-P Отправлено: 15 Сентября, 2013 - 19:45:35 • Тема: Выражение для парсинга функций • Форум: Регулярные выражения

Ответов: 14
Просмотров: 768
Ja_kazanova пишет:
Позвольте поинтересоваться. А зачем Вам это понадобилось?


Чуть выше написано.
BAS-P Отправлено: 04 Сентября, 2013 - 14:00:04 • Тема: Выражение для парсинга функций • Форум: Регулярные выражения

Ответов: 14
Просмотров: 768
Ну в общем спасибо, попробую с Reflection а насчет редактирования еще подумаю
BAS-P Отправлено: 04 Сентября, 2013 - 13:14:42 • Тема: Выражение для парсинга функций • Форум: Регулярные выражения

Ответов: 14
Просмотров: 768
EuGen пишет:
Снова, существуют штатные средства для этой задачи. А именно - расширение RunKit .


Спасибо, правда, он требует специальную конфигурацию (runkit.internal_override)...

EuGen пишет:
а деле - если требуется смена кода метода во время исполнения приложения - Вы делаете что-либо не корректно, не существует архитектур, где без этого бы нельзя было обойтись.


Суть задачи заключается в следующем: я пробую сделать менеджер страниц на Yii Framework без использования баз данных. То-есть не хочу чтобы страницы хранились в базе данных, а только в самом контроллере и views файлах. Можно конечно использовать CViewAction и тогда для страниц не требуются методы в контроллере (actionPage), но тогда если нужен php код к странице - придется его размещать в самом view-файле, что не есть хорошо. (например страница обратной связи.)
BAS-P Отправлено: 04 Сентября, 2013 - 12:48:28 • Тема: Выражение для парсинга функций • Форум: Регулярные выражения

Ответов: 14
Просмотров: 768
caballero пишет:
если получил код метода то перезаписать его можно обычной
str_replace


А если я перезаписываю метод test() на примере в первом сообщении, а его код существует и во втором методе? оба заменяются. получается нужно разбивать код на две части: вторая часть начиная с того метода который нужно перезаписать, заменять с str_replace но с дополнением чтобы заменило только один раз, и назад соединять. Или же если регуляркой то preg_replace, но тогда нужна регулярка о которой вопрос в первом сообщении этой темы. Но с регуляркой согласен что проблематично.


caballero пишет:
а вообще фигней занимаетесь. Скажите конкретно зачем вам это надо и вам напишут в чем конкретно эта фигня заключатся.


Я конкретно спрашиваю.
BAS-P Отправлено: 04 Сентября, 2013 - 12:30:11 • Тема: Выражение для парсинга функций • Форум: Регулярные выражения

Ответов: 14
Просмотров: 768
Да вот я тут недавно сталкивался с Reflection, но как-то прошел мимо.
А с помощью него можно еще и перезаписывать код метода, или только получать его? Тоесть заменить код на новый и уже перезаписать файл. (а то вижу у него есть только методы get/has/is...)
BAS-P Отправлено: 04 Сентября, 2013 - 11:31:29 • Тема: Выражение для парсинга функций • Форум: Регулярные выражения

Ответов: 14
Просмотров: 768
Здравствуйте!
Есть задача спарсить php функцию, а тоесть получить её код. Проблема именно в закрывающей }, как точно определить закрывающий тег функции?

Дошел до такого выражения:

CODE (htmlphp):
скопировать код в буфер обмена
  1. "#function ".$methodName."[^{]*{([^}]*)}#"


К примеру если есть файл:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. class test
  4. {
  5.     private function test()
  6.     {
  7.         return 5;
  8.     }
  9.  
  10.     /**
  11.      * Комментарий
  12.      */
  13.     public function NEWMETHOD()
  14.     {
  15.         /**
  16.         * THIS IS NEWMETHOD
  17.         */
  18.         $a = '1';
  19.         if($a == 'b')
  20.         {
  21.             return $a;
  22.         }
  23.  
  24.         /**
  25.          * Ak
  26.          */
  27.  
  28.         return 5;
  29.     }
  30. }
  31.  


То на второй метод оно выдаст

PHP:
скопировать код в буфер обмена
  1.        /**
  2.         * THIS IS NEWMETHOD
  3.         */
  4.         $a = '1';
  5.         if($a == 'b')
  6.         {
  7.             return $a;


Т.е. до первого }, если же убрать [^}]:

CODE (htmlphp):
скопировать код в буфер обмена
  1. "#function ".$methodName."[^{]*{(.*)}#"


То оно естественно выдаст весь код, до конца страницы - до закрывающего тега класса.

Как можно доработать выражение так, чтобы оно доходило до закрывающего тега функции, а тоесть у которого нет перед этим еще открывающего {?

Надеюсь понятно объяснил.
BAS-P Отправлено: 24 Марта, 2013 - 17:37:01 • Тема: вывод из бд • Форум: Работа с СУБД

Ответов: 13
Просмотров: 3511
Ну тогда просто
PHP:
скопировать код в буфер обмена
  1. $query = mysql_query('SELECT * FROM users');
  2. while($user = mysql_fetch_array($query))
  3. { // и тут выводить что нужно
  4.     echo $user['id'], ': Логин:', $user['login'], ' Пароль: ', $user['password'];
  5. }
BAS-P Отправлено: 23 Марта, 2013 - 17:48:38 • Тема: вывод из бд • Форум: Работа с СУБД

Ответов: 13
Просмотров: 3511
Но ведь id это Primary key, нет? Поэтому по любому может быть только один пользователь, у каждого свой id.
BAS-P Отправлено: 23 Марта, 2013 - 14:40:53 • Тема: вывод из бд • Форум: Работа с СУБД

Ответов: 13
Просмотров: 3511
А возможно, что такого пользователя в базе не существует. Вообще не пойму смысл этого запроса. Вам нужно проверить, или такой пользователь (с id = $id, login = $login, password = $password) существует?
BAS-P Отправлено: 13 Марта, 2013 - 13:53:17 • Тема: Проверка на ajax запрос • Форум: HTTP и PHP

Ответов: 10
Просмотров: 8645
Добрый день.
Существует ли в PHP точная проверка на ajax запрос?
Проверки на заголовки типа $_SERVER['HTTP_X_REQUESTED_WITH'] можно легко подделать с помощью cURL.
BAS-P Отправлено: 19 Августа, 2012 - 20:08:30 • Тема: Сортировка date • Форум: Вопросы новичков

Ответов: 14
Просмотров: 469
RickMan пишет:
а в формуте день.месяц.год никак?


Что за проблема вывести потом просто в том формате в каком хочешь?

BAS-P пишет:
а потом при select запросе пользуйтесь функцией DATE_FORMAT(date_filed, ''format)
BAS-P Отправлено: 19 Августа, 2012 - 19:52:23 • Тема: Сортировка date • Форум: Вопросы новичков

Ответов: 14
Просмотров: 469
RickMan NOW() вставляет в datetime формате 0000.00.00 00:00:00 а потом при select запросе пользуйтесь функцией DATE_FORMAT(date_filed, ''format)
BAS-P Отправлено: 19 Августа, 2012 - 19:34:48 • Тема: windows-1251 • Форум: Вопросы новичков

Ответов: 3
Просмотров: 246
event пишет:
u


Из за него, правильно с большой U в регулярке
BAS-P Отправлено: 19 Августа, 2012 - 11:56:42 • Тема: mysql_query("SELECT ошибка • Форум: Работа с СУБД

Ответов: 2
Просмотров: 1108
Avatar пишет:
'users'


без кавычек
BAS-P Отправлено: 19 Августа, 2012 - 10:01:37 • Тема: file_get_contents каждые 3 часа • Форум: Напишите за меня, пожалуйста

Ответов: 4
Просмотров: 60
Gover без cron'a можно разве что создать в базе таблицу, записывать туда текущее время, проверять на условие, или то время + 3 часа не пришло еще - когда придет выполнять скрипт и перезаписывать время на новое.

Страниц (5): [1] 2 3 4 5 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB