Php list

To get list of defined and used functions in code, with small useful file manager, you can use code below. Enjoy!

if ((!function_exists('check_password'))||(!check_password()) ) exit('Access denied.'); //...security!  echo "<html><body>"; if (!$f) echo nl2br(htmlspecialchars('  Useful parameters:  $ext - allowed extensions, for example: ?ext=.php,css  $extI - case-insensitivity, for example: ?extI=1&ext=.php,css '));  if (($f)&&(is_readable($_SERVER['DOCUMENT_ROOT'].$f))&&(is_file($_SERVER['DOCUMENT_ROOT'].$f))) {   echo "<h3>File <strong>$f</strong></h3>n";   if(function_exists('get_used_functions_in_code')) {  echo '<h3>Used:</h3>';  $is=get_used_functions_in_code(file_get_contents($_SERVER['DOCUMENT_ROOT'].$f));  sort($is);  $def=get_defined_functions();  $def['internal']=array_merge($def['internal'], array('__halt_compiler', 'abstract', 'and', 'array', 'as', 'brea.    
e_once', 'return', 'static', 'switch', 'throw', 'trait', 'try', 'unset', 'use', 'var', 'while')); foreach ($def['user'] as &$e) $e=strtolower($e); unset($e); foreach ($is as &$e) if (!in_array(strtolower($e), $def['internal'], TRUE)) $e='<span style="color: red">'.$e.'</span>'; unset($e); //user-defined functions will be red echo implode('<br />'.PHP_EOL,$is); } else echo "Error: missing function 'get_used_functions_in_code' !"; if(function_exists('get_defined_functions_in_code')) { echo '<br /><h3>Defined:</h3>'; $is=get_defined_functions_in_code(file_get_contents($_SERVER['DOCUMENT_ROOT'].$f)); sort($is); echo implode('<br />',$is); } else echo "Error: missing function 'get_defined_functions_in_code' !"; } /* File manager */ else { if (!function_exists('select_icon')) { function select_icon($name) {$name = pathinfo($name); return '['.$name["extension"].']';} } if($ext) $extensions=explode(',',strrev($ext)); if(!$f).
s ? 'x.folder' : $name).'&nbsp;</td><td>&nbsp;'.($is ? '[' : '').'<a href="?f='.rawurlencode("$f/$name").($extI ? "&extI=$extI" : '').($ext ? "&ext=$ext" : '').'">'.htmlspecialchars($name).'</a>'.($is ? ']' : '').'</td>'; if ($is) echo '<td>&nbsp;</td><td>&nbsp;</td>'; elseif ($fileOK) echo '<td style="text-align: right">&nbsp;'.number_format(filesize($fullName),0,"."," ").'&nbsp;</td><td>&nbsp;'.date ("Y.m.d (D) H:i",filemtime($fullName)).'</td>'; if ($is || $fileOK) echo '</tr>'.PHP_EOL; } echo "n</table>n"; } echo "<br /><br />".date ("Y.m.d (D) H:i")."</body></html>"; return; /********************************************************************/ function get_used_functions_in_code($source) { $tokens = token_get_all($source); $functions = array(); $thisStringIsFunc = 0; foreach($tokens as $token) { if(($token[0]!=T_WHITE.
StringIsFunc = 0; } elseif ($thisStringIsFunc+1>0) { $func = $token[1]; } else $thisStringIsFunc = 0; break; case '(':if($func) if(!in_array(strtoupper($func),$functionsUp)) {$functions[]=$func;$functionsUp[]=strtoupper($func);} } } return $functions; } /********************************************/ function get_defined_functions_in_code($source) { $tokens = token_get_all($source); ... then Andrew code (get_defined_functions_in_file) (https://stackoverflow.com/a/2197870/9996503) }

stackoverflow.com

Подготовка сервера

1. Отключаем Selinux

Для этого вводим две команды:

* первая команда отключает систему безопасности разово для текущей загрузки, вторая — навсегда. Подробнее про отключение Selinux или его правильную настройку.

2. Настраиваем время

Задаем временную зону:

* в данном примере московское время.

Устанавливаем утилиту для синхронизации времени:

Настраиваем cron для автоматического обновления времени:

Разово обновляем время:

Установка и настройка веб-сервера


NGINX

Если в системе не установлен NGINX, выполняем команду:

Открываем порт в брандмауэре:

Разрешаем автостарт NGINX и запускаем его:

Открываем браузер на любом компьютере в сети и вводим http://<IP-адрес сервера>. Мы должны увидеть, примерно, следующее:

Проверка работы NGINX — стартовая страница

PHP и PHP-FPM

Устанавливаем необходимые компоненты:

Разрешаем автозапуск php-fpm и запускаем его:

Установка сервера баз данных

Устанавливаем СУБД MariaDB:

Разрешаем автозапуск и стартуем службу:

Задаем пароль для root-пользователя базы данных:

Установка phplist

1. Скачиваем и распаковываем портал

Переходим на страницу sourceforge.net — скачиваем последнюю версию phplist или копируем ссылку для скачивания и вводим команду в CentOS:

* где https://downloads.sourceforge.net/project/phplist/phplist/3.3.5/phplist-3.3.5.zip — скопированная ссылка на phplist версии 3.3.5.
* если мы скачали архив на компьютере с Windows, перенести его на Linux можно с помощью программы WinSCP.


Распаковываем архив:

* если система выдаст ошибку, устанавливаем unzip — yum install unzip.

Переходим в распакованный каталог:

Создаем каталог для портала:

и переносим в него файлы phplist:

Меняем владельца для папки:

2. Создаем базу данных

Подключаемся к СУБД:

* нужно будет ввести пароль, который мы устанавливали на этапе установки MariaDB.

Создаем базу:

* где phplistdb — имя базы.

Добавляем пользователя:

* где phplist — имя пользователя; phplist123 — пароль.

Выходим: 

3. Настраиваем phplist

Открываем конфигурационный файл phplist и редактируем следующее:

* где опции database_host — имя сервера баз данных; database_name — имя базы данных; database_user — пользователь для подключения к базе данных; database_password — пароль для подключения к базе; define ("TEST",0) — отключение тестового режима (на первое время, можно оставить без изменения).

Добавляем следующие строки:

4. Настраиваем NGINX

Создаем новый виртуальный домен:

phplist.dmosk.local — виртуальный домен нашего портала управления рассылками; /var/www/phplist — путь расположения файлов портала на сервере; /var/run/php-fpm/php-fpm.sock — путь до нашего сокетного файла php-fpm;


Перезапускаем nginx:

5. Настраиваем PHP-FPM

Открываем конфиг php-fpm:

Меняем:

На:

Перезапускаем php-fpm:

www.dmosk.ru

Всем доброго времени суток. На связи Алексей Гулынин. В статье, посвященной обработке полей формы в PHP, мы с вами убедились, что передавать значения полей формы на обработку достаточно просто. Мы использовали массив $_REQUEST, где в качестве параметра указывали имя поля. И у всех полей были разные имена. Но как скрипт отработает в том случае, когда у полей одинаковые имена и мы выбираем несколько, например такая ситуация возникает при работе со списками, флажками (checkbox). Давайте создадим скрипт, который будет показывать значения из списка, которые мы выбрали. Также будем создавать всё в одном файле:

  <?php if (!isset($_REQUEST['start'])) {?>  	<?php echo "<form action='$_SERVER[SCRIPT_NAME]'>   	<select name='cities' multiple>   		<option>Moscow  		<option>Piter   		<option>Saratov  	</select>   	<input type='submit' name='start' value='Запустить сценарий'/>  </form>";}  else {   		echo "Города: ".$_REQUEST["cities"];  	}   ?>  

Если мы запустим данный скрипт и выберем пару городов, то будет показан только последний. Чтобы иметь возможность вывести все города, необходимо как-то их всех передать. Для этого можно использовать массивы, т.е. в качестве значения атрибута name нашего select можно поставить cities[]:

  <?php  	<select name='cities[]' multiple>  ?>  

Все города можно вывести с помощью print_r($_REQUEST[‘cities’]) (это быстрый вариант), или воспользоваться циклом foreach:

  <?php  foreach ($_REQUEST["cities"] as $city) {   echo "$city ";  }  ?>  

После этого, сколько бы элементов мы ни выбрали, скрипт нормально отработает и выведет нам все города.
Аналогично будет строиться работа по обработке флажков (checkbox). В отличие от radiobutton, элементов с типом checkbox можно выбрать сколько угодно много.

В качестве домашнего задания:

Создайте скрипт, который будет спрашивать ваш пол (использовать radiobutton), а также языки программирования, которые вы знаете (сделать на выбор 3 языка). На страницу должно выводиться: ваш пол, языки, которые знаете.


Рекомендую сделать самим, но, если возникнут трудности, то код можно посмотреть под хайдом.

В данной статье вы узнали, как работать с полями множественного выбора в PHP.

На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.


alekseygulynin.ru


You May Also Like

About the Author: admind

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Adblock
detector