PHP.SU

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

Страниц (15): [1] 2 3 4 5 6 7 8 9 ... » В конец

> Найдено сообщений: 224
Invert Отправлено: 01 Марта, 2014 - 14:23:21 • Тема: Определить номер текущей строки • Форум: Вопросы новичков

Ответов: 2
Просмотров: 295
Точно, спасибо!

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.   0 =>
  3.   array (
  4.     'file' => 'W:\\domains\\tick.local\\www\\index.php',
  5.     'line' => 23,
  6.     'function' => 'processLine',
  7.     'args' =>
  8.     array (
  9.     ),
  10.   ),
  11. )

(Добавление)
Вполне юзабельная штука:
PHP:
скопировать код в буфер обмена
  1. $debug = new Debug();
  2.  
  3. register_tick_function ( array( $debug, 'tickCallback' ) );
  4. declare( ticks = 1 );
  5.  
  6. $array = array ();
  7. for ( $i = 0; $i < 10; $i++ ) {
  8.     $array[ $i ] = $i;
  9. }
  10.  
  11. echo ( 'Count: ' . count( $array ) . '<br>' );
  12.  
  13. unregister_tick_function ( array( $debug, 'tickCallback' ) );
  14. declare( ticks = 0 );
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21. class Debug {
  22.  
  23.     public function tickCallback () {
  24.         $backtrace = debug_backtrace();
  25.         $lineNumber = $this->getLineNumber( $backtrace );
  26.         $lineCode = $this->getLineCode( $backtrace );
  27.         $variables = $this->getVariables();
  28.         echo( "{$lineNumber} : {$lineCode} <br>" . PHP_EOL );
  29.     }
  30.  
  31.     private function getVariables () {
  32.         $ignore = array ( '_GET', '_POST', '_COOKIE', '_FILES', '_ENV', '_REQUEST', '_SERVER', 'GLOBALS' );
  33.         $result = array ();
  34.         foreach ( $GLOBALS as $itemKey => $itemValue ) {
  35.             if ( !in_array( $itemKey, $ignore ) ) {
  36.                 $result[ $itemKey ] = $itemValue;
  37.             }
  38.         }
  39.         return $result;
  40.     }
  41.  
  42.     private function getLineNumber ( $backtrace ) {
  43.         $lastBacktrace = array_shift( $backtrace );
  44.         if ( isset( $lastBacktrace[ 'line' ] ) ) {
  45.             return $lastBacktrace[ 'line' ];
  46.         }
  47.         return 0;
  48.     }
  49.  
  50.     private function getLineCode ( $backtrace ) {
  51.         $lineCode = NULL;
  52.         $lastBacktrace = array_shift( $backtrace );
  53.         if ( isset( $lastBacktrace[ 'line' ] ) && isset( $lastBacktrace[ 'file' ] ) ) {
  54.             $fileHandler = fopen( $lastBacktrace[ 'file' ], 'r' );
  55.             if ( $fileHandler ) {
  56.                 $currentLineNumber = 0;
  57.                 while ( ( $fileLine = fgets( $fileHandler, 4096 ) ) !== FALSE ) {
  58.                     $currentLineNumber++;
  59.                     if ( $currentLineNumber == $lastBacktrace[ 'line' ] ) {
  60.                         $lineCode = $fileLine;
  61.                         break;
  62.                     }
  63.                 }
  64.                 fclose( $fileHandler );
  65.             }
  66.         }
  67.         return trim( $lineCode );
  68.     }
  69.  
  70. }
  71.  


И результат:
CODE (htmlphp):
скопировать код в буфер обмена
  1. 6 : declare( ticks = 1 );
  2. 6 : declare( ticks = 1 );
  3. 8 : $array = array ();
  4. 10 : $array[ $i ] = $i;
  5. 11 : }
  6. 10 : $array[ $i ] = $i;
  7. 11 : }
  8. 10 : $array[ $i ] = $i;
  9. 11 : }
  10. 10 : $array[ $i ] = $i;
  11. 11 : }
  12. 10 : $array[ $i ] = $i;
  13. 11 : }
  14. 10 : $array[ $i ] = $i;
  15. 11 : }
  16. 10 : $array[ $i ] = $i;
  17. 11 : }
  18. 10 : $array[ $i ] = $i;
  19. 11 : }
  20. 10 : $array[ $i ] = $i;
  21. 11 : }
  22. 10 : $array[ $i ] = $i;
  23. 11 : }
  24. 11 : }
  25. Count: 10
  26. 13 : echo ( 'Count: ' . count( $array ) . '
  27. ' );
Invert Отправлено: 01 Марта, 2014 - 13:38:50 • Тема: Определить номер текущей строки • Форум: Вопросы новичков

Ответов: 2
Просмотров: 295
Возможно ли узнать на какой строке в данный момент находится выполнение скрипта?
__LINE__ не подходит.

Играюсь с тиками и хотелось бы определять, какая именно строка в данный момент выполняется.


(Добавление)
Нет, не так.

Имеется скрипт:
PHP:
скопировать код в буфер обмена
  1.  
  2. function processLine () {
  3.     $ignore = array ( '_GET', '_POST', '_COOKIE', '_FILES', '_ENV', '_REQUEST', '_SERVER', 'GLOBALS' );
  4.     $result = array ();
  5.     foreach ( $GLOBALS as $itemKey => $itemValue ) {
  6.         if ( !in_array( $itemKey, $ignore ) ) {
  7.             $result[ $itemKey ] = $itemValue;
  8.         }
  9.     }
  10.     var_export( $result );
  11. }
  12.  
  13. register_tick_function ( 'processLine' );
  14. declare( ticks=1 );
  15.  
  16. $array = array ();
  17. for ( $i = 0; $i < 10; $i++ ) {
  18.     $array[ $i ] = $i;
  19. }
  20.  


Нужно как-то узнать, с какой конкретной строки была вызвана processLine
Invert Отправлено: 23 Февраля, 2014 - 13:53:33 • Тема: выбор • Форум: CMS и фреймворки

Ответов: 26
Просмотров: 4009
Мелкий пишет:
А Invert и digi - известные адепты секты симфони. Советую воспеваемые дифирамбы делить хотя бы пополам.

Эм? Когда это меня записали в секту без моего согласия?
Я в данный момент не использую Symfony2 и точно не являюсь его "известным адептом".
Мелкий пишет:
Phalcon, PHPixie, Kohana, F3, CakePHP

Первый однозначно да, а остальное фыр-фыр...
Invert Отправлено: 22 Февраля, 2014 - 22:11:54 • Тема: выбор • Форум: CMS и фреймворки

Ответов: 26
Просмотров: 4009
ksedin пишет:
Invert, но все же главный вопрос, стоит ли оставаться на симфони или же на на ларавел, касательно данного проекта

Я не могу вам ответить на этот вопрос. Symfony2 на данный момент является де-факто лидером фреймворков и конечно же, стоит потраченного на него времени. Но он довольно сложный и вы сами должны определиться, стоит ли его использовать для вашего проекта.

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

Это лишь мое мнение...
Invert Отправлено: 22 Февраля, 2014 - 21:57:30 • Тема: выбор • Форум: CMS и фреймворки

Ответов: 26
Просмотров: 4009
ksedin пишет:
Кодигнайтер не расматриваю, уж больно его архитектура не нравится

Морально устарел и сильно отстал от мейнстрима. У нас множество проектов на продакшене работают на базе CI2. С момента разработки этих проектов в фреймворке по сути ничего не изменилось.

ksedin пишет:
На примете есть ларавел

С ним не работал, но наслышан, что он очень хорош.
Invert Отправлено: 17 Февраля, 2014 - 18:01:42 • Тема: Как реализовать настедование • Форум: Объектно-ориентированное программирование

Ответов: 7
Просмотров: 1604
Мой вам совет, не делайте так. Используйте композицию, это проще и гибче.
Invert Отправлено: 15 Февраля, 2014 - 21:14:10 • Тема: скрипт поиска • Форум: Вопросы новичков

Ответов: 1
Просмотров: 84

Я бы посоветовал вам удалить "это" и протереть компьютер спиртом, но вы меня не послушаете.

Потому попробуйте заменить во всех скриптаx <? на <?php.
Invert Отправлено: 15 Февраля, 2014 - 04:56:42 • Тема: Запрос количества без лимита и с лимитом в одном запросе возможно ли? • Форум: SQL и Архитектура БД

Ответов: 18
Просмотров: 117
3d_killer пишет:
придется повторить данный запрос?

Да, COUNT( id ) вторым запросом
Invert Отправлено: 15 Февраля, 2014 - 04:46:05 • Тема: mod_rewrite, не загружаются изображения и файлы (ЧПУ) • Форум: Apache и другие веб-серверы

Ответов: 2
Просмотров: 640
#RewriteCond %{REQUEST_FILENAME} !-f - Если НЕ файл
#RewriteCond %{REQUEST_FILENAME} !-d - Если НЕ директория

Правда я не уверен что означают ваши остальные условия
Invert Отправлено: 14 Февраля, 2014 - 08:54:50 • Тема: цикл WHILE и цикл FOREACH • Форум: Вопросы новичков

Ответов: 17
Просмотров: 651
3d_killer пишет:
извиняюсь, но я не понял к чему это написано, вроде знаю основы и циклы составил правильно


Уверены?

PHP:
скопировать код в буфер обмена
  1. while ( $this->all_category[ $i ] )


Тут у вас магия, и как написал OrmaJever, вы должны понимать, что произойдет в этой части кода.
Invert Отправлено: 14 Февраля, 2014 - 08:44:49 • Тема: Ошибка в коде • Форум: Если скрипт не работает

Ответов: 5
Просмотров: 2171
Замените на:
PHP:
скопировать код в буфер обмена
  1. <?PHP if ( $arElement[ 'CAN_BUY' ] ) { ?>
  2. // Цена
  3. <?PHP } ?>

и посмотрите, что будет.
Invert Отправлено: 14 Февраля, 2014 - 08:42:35 • Тема: изображение не найденно • Форум: Напишите за меня, пожалуйста

Ответов: 4
Просмотров: 51
PHP:
скопировать код в буфер обмена
  1.  
  2. if ( ! is_file( $city ) ) {
  3.    echo 'Ошибка';
  4. }
  5.  
Invert Отправлено: 13 Февраля, 2014 - 13:26:08 • Тема: Как боты обходят регулярные выражения? • Форум: Регулярные выражения

Ответов: 4
Просмотров: 277
Цитата:
Если javascript отключен, то отправка не идет.

Это она у вас в браузере не идет, POST запрос можно отправить не имея ни формы, ни страницы, прямо на УРЛ.

Цитата:
Регулярное выражение для проверки ..

Это на фронтенде проверяется? Т.е. в браузере, с помощью JS?
Invert Отправлено: 13 Февраля, 2014 - 12:52:37 • Тема: Как хранить пароли пользователей? • Форум: Вопросы новичков

Ответов: 5
Просмотров: 195
В БД пароли не должны храниться в открытом виде, вопрос безопасности.

Если хотите иметь доступ к паролям пользователей, то храните в открытом виде, только прочтите еще раз строчку выше.
Invert Отправлено: 13 Февраля, 2014 - 12:07:22 • Тема: Передача значения методом GET • Форум: JavaScript & VBScript

Ответов: 2
Просмотров: 695
Удалено, промахнулся веткой

Страниц (15): [1] 2 3 4 5 6 7 8 9 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB