Установка phpMyAdmin

phpMyAdmin — веб-приложение, написанное на PHP, позволяющее администрировать MySQL базами данных через браузер.

Самым простой вариант установки phpMyAdmin, это скачать архива с последней версией с официального сайта www.phpmyadmin.net и распаковав в нужную www директорию, после этого можно открыть в браузере http://HOST/phpmyadmin/setup/ и следовать инструкциям. После переместить файл config.inc.php в корневую директорию phpmyadmin и закрыть доступ к /setup/ или вовсе удалить ее.
Читать далее «Установка phpMyAdmin»

Установка и настройка Nginx

nginx (engine x) — это веб-сервер и обратный прокси-сервер, а также почтовый прокси-сервер.

Установить в Ubuntu можно командой:

Читать далее «Установка и настройка Nginx»

PHP. Работа с файлами

Автор: Мухаметшин Д.Ф

Правильно работать с файлами должен уметь каждый программист. Данная статья ориентирована на начинающих PHP программистов, однако «сборник рецептов» будет полезен и продвинутым пользователям.
Работа с файлами разделяется на 3 этапа:

Открытие файла.
Манипуляции с данными.
Закрытие файла.

I. Открытие файла
Для того чтобы открыть файл в среде PHP используется функция fopen(). Обязательными параметрами этой функции является имя файла и режим файла.

$fp = fopen('counter.txt', 'r');

Согласно документации PHP выделяют следующие виды режимов файлов:
r – открытие файла только для чтения.
r+ — открытие файла одновременно на чтение и запись.
w – создание нового пустого файла. Если на момент вызова уже существует такой файл, то он уничтожается.
w+ — аналогичен r+, только если на момент вызова фай такой существует, его содержимое удаляется.
a – открывает существующий файл в режиме записи, при этом указатель сдвигается на последний байт файла (на конец файла).
a+ — открывает файл в режиме чтения и записи при этом указатель сдвигается на последний байт файла (на конец файла). Содержимое файла не удаляется.

Примечание: в конце любой из строк может существовать еще один необязательный параметр: b или t. Если указан b, то файл открывается в режиме бинарного чтения/записи. Если же t, то для файла устанавливается режим трансляции перевода строки, т.е. он воспринимается как текстовый.

Для демонстрации рассмотрим следующий сценарий:

<?php
//Открывает файл в разных режимах
$fp = fopen('counter.txt', 'r'); // Бинарный режим
$fp = fopen('counter.txt', 'rt'); // Текстовый режим
$fp = fopen("http://www.yandex.ru", "r");// Открывает HTTP соединение на чтение
$fp = fopen("ftp://user:password@example.ru", 'w'); //Открываем FTP соединение с указанием логина и пароля
?>

II. Манипуляции с данными файла
Записывать данные в файл при помощи PHP можно при помощи функции fwrite(). Это функция принимает 2 обязательных параметра и 1 необязательный. В качестве обязательных параметров выступает дескриптор файла и режим файла:

<?php
$fp = fopen("counter.txt", "a"); // Открываем файл в режиме записи
$mytext = "Это строку необходимо нам записать\r\n"; // Исходная строка
$test = fwrite($fp, $mytext); // Запись в файл
if ($test) echo 'Данные в файл успешно занесены.';
else echo 'Ошибка при записи в файл.';
fclose($fp); //Закрытие файла
?>

Для построчного считывания файла используют функцию fgets(). Функция принимает 2 обязательных параметра:

<?php
$fp = fopen("counter.txt", "r"); // Открываем файл в режиме чтения
if ($fp)
{
while (!feof($fp))
{
$mytext = fgets($fp, 999);
echo $mytext."<br />";
}
}
else echo "Ошибка при открытии файла";
fclose($fp);
?>

Примечание: В данном примере значение 999 определяет количество символов, которые будут считываться до тех пор, пока указатель не достигнет конца файла (EOF).
Для того, чтобы считать файл как единое целое, нужно использовать функцию readfile(), принимающая 1 обязательный параметр. Функция открывает файл, отображает его содержимое в окне браузера, а затем закрывает файл:

<?php
echoreadfile("counter.txt");
?>

Также можно использовать функцию fpassthru() которая принимает 1 обязательный параметр. Перед использованием этой функции необходимо открыть файл в режиме чтения. По окончанию считывания файла функция автоматически закрывает файл(при этом дескриптор файла становиться недействительным).

<?php
$fp = fopen("counter.txt", "r"); // Открываем файл в режиме чтения
if ($fp) echo fpassthru($fp);
elseecho "Ошибка при открытии файла";
?>

Очень часто встречаются ситуации, когда необходимо содержимое сайта считать в массив. Эту возможность предусматривает использование функции file(). При вызове этой функции, каждая строка файла сохранятся в отдельном элементе указанного массива.
Примечание: Не следует применять функцию file() к двоичным файлам (binary-safe), т.к. она не является безопасной в плане считывания двоичных файлов, если при этом, где-то встретиться символ конца файла (EOF), то она не гарантирует вам чтение всего двоичного файла.

<?php
$file_array = file("counter.txt"); // Считывание файла в массив $file_array
//
// Работа с данными массива
//
?>

Примечание: Работа с массивами подробно описывается здесь, авторы: Мухаметшин Д.Ф., Симдянов И.В.
В конце статьи, вы найдете хороший «сборник рецептов» по массивам, который дает решение многих проблем, с которыми ежедневно встречается веб-программист.
Давайте представим ситуацию, когда файл необходимо считать по символам. Для этого мы можем воспользоваться функцией fgetc(). Функция принимает единственный параметр. Функция полезна если нам необходимо найти какой-либо символ или количество одинаковых символов.

<?php
$fp = fopen("counter.txt", "r"); // Открываем файл в режиме чтения
if ($fp)
{
  while(!feof($fp))
  {
  $char = fgetc($fp);
  if ($char == 'с') $i = $i + 1;// Находим символ «с»
  }
echo 'Количество букв "c" в файле: '. $i;
}
else echo "Ошибка при открытии файла";
?>

III. Закрытие файла
Закрытие файла происходить с помощью функции fclose(), которая принимает 1 обязательный параметр.

<?php
$fp = fopen("counter.txt", "r");
if ($fp)
{
echo 'Файл открыт';
fclose($fp); // Закрытие файла
}
?>

Сборник рецептов
1) Нам необходимо проверить существует ли тот или иной файл. Для этого мы воспользуемся функцией file_exists().

<?php
myfile("counter.txt"); // Используем функцию myfile, передав в качестве аргумента имя файла

function myfile($name) //Создаем функцию для проверки существования файла
{
if (file_exists($name)) echo 'Файл существует';
else echo "Файл не существует";
}
?>

Примечание: Функция file_exists не производит проверку файлов на удаленном веб-сервере. Для правильной работы функции, файл со скриптом должен находиться на том сервере, где и проверяемый файл.

2) Определяем размер файла с помощью функции filesize()

<?php
myfile("counter.txt");
function myfile($name) //Создаем функцию для проверки существования файла и определения размера файла
{
if (file_exists($name)) echo "Размер файла: ".filesize($name).' байт';
else echo "Файл не существует";
}
?>

3) Создание временного файла с помощью функции tmpfile()

<?php
$myfile = tmpfile();
fwrite($myfile, "Эта строка записывается во временный файл."); // Записываем во временный файл
fseek($myfile, 0); // Устанавливаем указатель файла
echo fread($myfile, 1024); // выводим содержимое файла
?>

4) Вам необходимо определить количество строк в файле. Для этого используем функцию count()

<?php
$fp = file("counter.txt");
echo 'Количество строк в файле: '.count($fp);
?>

5) Нам необходимо использовать механизм блокировки файла

<?php
$fp = fopen("counter.txt", 'a');
flock($fp, LOCK_EX); // Блокирование файла для записи
fwrite($fp, "Строка для записи");
flock($fp, LOCK_UN); // Снятие блокировки
fclose($fp);
?>

6) Нам необходимо удалить определенную строку из файла

<?php
$num_stroka = 5; //Удалим 5 строку из файла
$file = file("counter.txt"); // Считываем весь файл в массив

for($i = 0; $i < sizeof($file); $i++)
if($i == $num_stroka) unset($file[$i]);

$fp = fopen("counter.txt", "w");
fputs($fp, implode("", $file));
fclose($fp);
?>

7) Определение типа файла. Используем функцию filetype(), которая принимает единственный параметр

<?php
$mytype = filetype("counter.txt");
echo "Тип файла: ".$mytype;
?>

После вызова строка может содержат одно из следующих значений:
file – обычный файл
dir – каталог
ink – символическая ссылка
fifo – fifo-канал
block – блочно — ориентированное устройство
char – символьно — ориентированное устройство
unknown – неизвестный тип файла

8) Если вы хотите просмотреть все параметры файла, то следует воспользоваться функцией stat()

<?php
$filename = stat("counter.txt");
echo "<pre>";
print_r($filename);
echo "</pre>";
?>

9) Нам необходимо очистить файл, используем функцию ftruncate()

<?php
$fp = fopen("counter.txt", 'a'); //Открываем файл в режиме записи
ftruncate($fp, 0) // очищаем файл
?>

10) Нам необходимо узнать дату последнего изменения файла, используем функцию filectime(). Функция возвращает значение времени в форме Unix timestamp.

<?php
echo filectime("counter.txt");
?>

Теги bbCode

bbCode (Bulletin Board Code) — язык разметки, используемый для форматирования сообщений на многих форумах. Для форматирования текста используются теги, подобные тегам HTML, но, в отличие от них, заключённые в квадратные скобки. Перед отображением страницы движок форума производит разбор текста и преобразование его в HTML-код.
Wiki: http://ru.wikipedia.org/wiki/BbCode

Приведу пример некоторых тегов bbCode:

[b]полужирный текст[/b]
[i]наклонный текст[/i]
[u]подчёркнутый текст[/u]
[s]зачёркнутый текст[/s]
[strike]зачёркнутый текст[/strike]
[sup]надстрочный[/sup]
[sub]подстрочный[/sub]
[tt]однотипный шрифт[/tt]
[email]user@example.net[/email]
[quote]цитируемый текст[/quote]
[quote author=автор]цитируемый текст[/quote]
[size=15pt]Ваш текст[/size]
[font=Verdana]шрифт[/font]
[color=red]Цветной текст[/color]
[color=#FF0000]Цветной текст[/color]
[glow=green,1,70]с обрамлением[/glow]
[shadow=green,left]с тенью[/shadow]
[move]бегущая строка[/move]
[left]выровнять слева[/left]
[center]выровнять по центру[/center]
[right]выровнять справа[/right]

Список:

[list]
[li]первая строка[/li]
[li]вторая строка[/li]
[/list]

Сохраняет форматирование текста:

[pre]Слово     слово 
		слово[/pre]

Вставка flash объектов:

[flash=200,200]http://example.net/file.swf[/flash]

Выравнивание текста оп горизонтали:

[hr]

Пример таблицы:

[table]
[tr][td]первая строка первого столбца[/td]
[td]первая строка второго столбца[/td][/tr]
[tr][td]вторая строка первого столбца[/td]
[td]вторая строка второго столбца[/td][/tr]
[/table]

Картинка:

[img]http://example.org/logo.png[/img]
[img width=55 height=70]http://example.org/logo.png[/img]

Ссылка:

[url=http://wikipedia.org]Википедия[/url]
[url]http://ru.wikipedia.org[/url]

FTP ссылка:

[ftp=ftp://example.org/file.zip]Ссылка[/ftp]
[ftp]ftp://example.org/file.zip[/ftp]

Создание и использование Favicon.ico

Favicon (FAVorites ICON) — значок веб-сайта или веб-страницы, отображается браузером в адресной строке перед URL страницы, а также в качестве картинки рядом с закладкой, во вкладках и в других элементах интерфейса.

Стандартный размер 16×16 пикселей.
Для установки нужно просто скопировать иконку в корневую директорию сайта, если используется какой нибудь движок сайта со сменными темами, то желательно также поместить иконку в директорию активной темы, так как в блоке темы

<head></head>

может быть прописан путь иконки в директорию этой темы

<link rel="icon" href="/favicon.ico" type="image/x-icon">
<link rel="shortcut icon" href="http://www.example.com/dir/favicon.ico" type="image/x-icon">

Если использование иконки не нужно, то можно создать и поместить пустой файл favicon.ico с нулевым размером. Это желательно, так как браузеры обращаются к файлу favicon.ico и если он не существует, то в файле логов веб сервера будет очень много записей об ошибке обращения к этому файлу.

В интернете очень много онлайн конструкторов иконок и галерей с готовыми. Достаточно просто набрать в поисковике «галерея favicon.ico» и т.д.

Обновление WordPress без FTP

Иногда при обновление плагинов, тем или движка может появляться окно запрашивающее логин, пароль, адрес FTP сервера для загрузки новых файлов, чтобы этого не происходило можно добавить в конфиг wp-config.php строчку:

define('FS_METHOD', 'direct');

После этого обновление будет происходить напрямую. В случае ошибки обновления нужно проверить владельца и группу для директорий и файлов на сервере.

Восстановление пароля администратора Joomla

На случай если пароль от административной панели был утерян или забыт, нужно выполнить в базу данных сайта указанный ниже sql запрос.

Стандартный sql запрос на изменение пароля пользователя Joomla:

UPDATE `jos_users`
SET password= MD5( 'новый пароль' )
WHERE id = айдипользователя;

Редактирование виджета META в WordPress

Для изменения блока Mета необходимо отредактировать файл который находится в директории сайта \wp-includes\default-widgets.php.
Код блока Мета начинается примерно со строки 313. В разных версиях WordPress могут быть некоторые изменения.
Выглядит он примерно так:

<ul>
<?php wp_register(); ?>
<li><?php wp_loginout(); ?></li>
<li><a href="<?php bloginfo('rss2_url'); ?>"........
<li><a href="<?php bloginfo('comments_rss2_u........
<li><a href="<?php esc_attr_e( 'http://wordp........
/* translators: meta widget link text */
_e( 'WordPress.org' );
?></a></li>
<?php wp_meta(); ?>
</ul>

Простое кэширование страниц

Приведу пример простого кэширования PHP страниц с интервалом 600 секунд (10 минут).

Вставляем в начале кода:

Читать далее «Простое кэширование страниц»

Использование .htaccess

.htaccess — (hypertext access) файл дополнительной конфигурации веб-сервера Apache и подобных ему серверов.
Чтобы файл обрабатывался сервером Apache, в конфигурационном файле для указанной директории должна стоять опция «AllowOverride All».

Читать далее «Использование .htaccess»