вторник, 4 декабря 2012 г.

Поиск в строке

Для поиска подстроки в строке существует функция strpos:
  strpos(string, searchstring, [starting position]);
  string - строка в которой производится поиск;
  searchstring - подстрока которую ищем; 

Если начальная позиция (starting position) не указана, то 
поиск будет производиться с начала строки.
Функция strpos возвращает номер позиции с которой начинается 
подстрока. Если подстрока не найдена, то то функция возвратит false.
Пример:
 <?php
  if (strpos("поиск подстроки", "под") !== false) echo"Найдено";

  // Выведет: Найдено
  else echo "не найдено";
 ?>

понедельник, 3 декабря 2012 г.

Функция удаление файла

Для удаления файла можно использовать функцию unlink:
unlink(name);
Пример 1:
 <?php
  if(unlink('File.txt'))
  { echo "unlink is successful";}
  else 
  { echo "Error unlink";}
 ?>

Если файл находится в открытом состоянии то перед удаление его нужно закрыть. 
Пример 2:
<?php
  $file=fopen('C:\server\domains\oldFile.txt', 'w+');
  fclose($file);
  if(unlink('File.txt'))
  { echo "unlink is successful";}
  else 
  { echo "Error unlink"; }
?>





Функция переименование файла

Для того что бы переименовать имя файла существует 
функция rename:
rename(oldName, newName); 
Функция rename, переименует файл с именем oldName 
на имя newName, если это имя расположено в той же 
файловой системе.


Пример 1:
   <?php
if(copy('oldFile.txt', 'newFile.txt'))
{ echo "rename is successful";}
else 
{ echo "Error rename"; }
?>

Функция копирование файлов


Для копирования файлов используется функция copy:
copy(oldFile, newFile);
Функция копирует файл с названием oldFile в файл с 
названием newFile. Если файл с таким именем уже 
существует, то он перезаписывается.


Пример 1:

<?php
$file=fopen('C:\server\domains\oldFile.txt', 'w+');
$newfile=copy('C:\server\domains\oldFile.txt', 'newFile.txt');
?>
Пример 2:
   <?php
$file=fopen('C:\server\domains\oldFile.txt', 'w+');
if(copy('C:\server\domains\oldFile.txt', 'newFile.txt'))
{ echo "Copying is successful";}
else 
{ echo "Error copying"; }
?>

пятница, 30 ноября 2012 г.

Чтения из файла

Для чтения строки из файла используется функция
fread:
fread(namefile, lenght)

В параметре lenght указывается длина 
выводимой строки, namefile - дескриптор файла.
Пример:
  <?php

    $file = fopen('C:\server\domains\site\file.txt','r');
    if(!$file)
     {
       echo("error open file!");
     }
     else
     {
       $rfile = fread ($file,50);
       print $rfile;
     }

  ?>

четверг, 29 ноября 2012 г.

Закрытие файла


После того как робота с файлом будет завершена его нужно 
закрыть. Для этого существует функция fclose:

fclose(file)




Пример:
 <?php
   $ftxt = "newfile.txt";
   $file = fopen($ftxt, "r"); // открытие файла

  //  здесь происходит выполнения каких либо операций с файлом

   fclose($file); //закрытие файла 
 ?>

Отображения файла


Для отображения содержимого текстового файла в браузере 
существует функция readfile(<namefile>):
 Пример: 
  <?php  
  readfile("newfile.txt")'
  ?>


Для отображения  других файлов используется функция: 
  fpassthru(<дескриптор>) 
Пример:
<?php
$file = fopen("C:/temp/php/file.txt","rb");
if(!$file) 
{
   echo "error open file";
}
else
{
  fpassthru($file);
}
?>  

Обратите внимание что для fpassthru мы используем не имя файла, а его дескриптор.

среда, 28 ноября 2012 г.

Основные функции для работы со строками:


Основные функции для работы со строками:

  echo - выводит строку;
  $str = "новая строка";
  echo $str;
  //Выведет: новая строка


print()выводит строку;
  $str = "новая строка";
  print $str;
  //Выведет: "новая строка"

printf() -  выводит отформатированную строку;
  $str = "новая строка";
  printf $str;
  //Выведет: "новая строка"

strlen() - возвращает длину строки;
  $str = "новая строка";
  echo strlen($str);
  //Выведет: 12


strrev() - переворачивает строку;
   $str = "новая строка";
  echo strrev($str);
  //Выведет: "акортс яавон"

ltrim() - удаляет пробел в начале строки;

  $str = " новая строка ";
  $str = ltrim($str)
  echo "$str";
  //Выведет: "новая строка "

rtrim() - удаляет пробел в конце строки;

  $str = " новая строка ";
  $str = rtrim($str)
  echo "$str";
  //Выведет: " новая строка"

trim() - удаляет пробел в начале и в конце строки;
  $str = " новая строка ";
  $str = trim($str)
  echo "$str";
  //Выведет: "новая строка"

explode() - разбивает строку на подстроки;

вторник, 27 ноября 2012 г.

Преобразование массива в переменные

Для преобразование массива в переменные используется
функция extract() - это функция которая создает переменные
с именами которые соответствуют именам ключей массива и
их значениями.  
extract(<массив>, <способ>, <префикс>);
массив - исходный массив;
способ - обработка конфликтных ситуаций, имеет 
несколько решений:


  • EXTR_OVERWRITE перезаписывает значения переменой,если она уже существует;
  • EXTR_SKIP - пропускает элемент массива  если переменная существует;
  • EXTR_PREFIX_SAME - создаст переменную с префиксом если она уже существует, префикс нужно указать в параметре <префикс>; 
  • EXTR_PREFIX_ALL - добавляет префикс перед именами всех переменных, префикс нужно указать в параметре <префикс>

      
$mass0 = 'nice';
$Mass= array('mass0'=>'one', 'mass1'=>'two', 'mass2'=>'three');
extract($Mass, EXTR_OVERWRITE);
echo "$mass0 $mass1 $mass2";
// выведет one two three 

понедельник, 26 ноября 2012 г.

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


Файл это последовательный набор байтов, которые хранятся
наразличных носителях информации. Файл имеет путь по
которому к нему обращаются(место расположения файла).
Открытие файла производится с помощью функции fopen:
fopen(namemode)

Аргумент name - это имя файла либо абсолютный путь к нему. Если файл расположен 
в текущем каталоге, то путь можно не указывать.

Аргумент mode - здесь нужно указать действие для которого мы открываем файл:
  r   - открытия файла для чтения, указатель файла устанавливается в начало файла;
  r+ - открытия файла для чтения и записи, указатель файла устанавливается в начало 
файла;
  w - создания нового пустого файла для чтения, если такой файл уже существует, 
то вся информация в нем удалится;
  w+ - создания нового пустого файла для чтения и записи, если такой файл уже 
существует, то вся информация в нем удалится;
  a   - открытия файла для дописывания данных, данные будут записаны в конец 
файла;  
  a+ -  открытия файла для дописывания данных и чтения, данные будут записаны 
в конец файла.  

Пример кода для открытия файла по адресу: C:/temp/php/file.txt, для чтения:

 <?php

$file = fopen('C:/temp/php/file.txt',"r");
if(!file) echo ("is not file");

php>

четверг, 22 ноября 2012 г.

Получение части массива




Для получения части массива используется функция
array_slice(). Вызов функции имеет следующий формат:
array_slice(<Массив>, <Начальная позиция>[, <Количество элементов>]);





Функции передаются следующие параметры:
<Массив> — исходный массив;
<Начальная позиция> — количество элементов от начала массива, которые 
надо пропустить;
<Количество элементов>— количество элементов, которое нужно получить 
из исходного массива. Если параметр опущен, то элементы выбираются до 
конца массива.

Пример:
  $Mass = array('Один', 'Два', 'Три', 'Четыре', 'Пять');
  $Mass2 = array_slice($Mass, 2, 3);
  print_r($Mass2);
  // Array ( [0] => Три [1] => Четыре [2] => Пять )

Полученную часть массива можно заменить одним элементом или 
массивом элементов с помощью функции array_splice(). Вызов функции 
осуществляется так:
  array_splice(<Массив>, <Начальная позиция>, <Количество        элементов>,<Добавляемый массив>);

Первые три параметра имеют такое же значение, как и у функции array_slice().
Четвертый параметр <Добавляемый массив> — один элемент или массив 
элементов, добавляемый вместо выбранных элементов:
  $Mass1 = array('Один', 'Два', 'Три', 'Четыре', 'Пять');
  $Mass2 = array('3', '4', '5');
  array_splice($Mass1, 2, 3, $Mass2);
  print_r($Mass1);
  // Array ( [0] => Один [1] => Два [2] => 3 [3] => 4 [4] => 5 )





Заполнение массива числами


Создать массив, содержащий диапазон чисел, можно
либо с помощью цикла, либо с помощью функции range().
Функция имеет следующий формат:
range(<Начало диапазона>, <Конец диапазона>);
Предположим, необходимо создать массив, состоящий из 
диапазона чисел от 1 до 100:


  $Mass = range(1, 100);
  foreach ($Mass as $key) {
  echo $key . '<br>';
  } // Выведет числа от 1 до 100, разделенные тегами <br>


Преобразование переменных в массив




Функция compact() позволяет преобразовать переменные
в ассоциативный массив. Ключами становятся имена
переменных, а значениями — значения переменных:



  $var1 = 1;
  $var2 = 2;
  $var3 = 3;
  $Mass = compact('var1', 'var2', 'var3');
  print_r($Mass);
 // Array ( [var1] => 1 [var2] => 2 [var3] => 3 )

среда, 21 ноября 2012 г.

Сортировка массива


Функция sort() позволяет отсортировать список в
алфавитном порядке, а функция rsort() — в обратном
порядке:
  $Mass = array('Один', 'Два', 'Три', 'Четыре');
  sort($Mass);
  print_r($Mass);
  // Array ( [0] => Два [1] => Один [2] => Три [3] => Четыре )
                  rsort($Mass);
                  print_r($Mass);
// Array ( [0] => Четыре [1] => Три [2] => Один [3] => Два )



Отсортировать ассоциативный массив можно или по ключам, или по 
значениям. Для этого используются следующие функции:
  asort() — сортировка по значениям в алфавитном порядке;
  arsort() — сортировка по значениям в обратном порядке:
  

  $Mass['Один'] = 1;
  $Mass['Два'] = 2;
  $Mass['Три'] = 3;
  $Mass['Четыре'] = 4;
  arsort($Mass);
  print_r($Mass);
  // Array ( [Четыре] => 4 [Три] => 3 [Два] => 2 [Один] => 1 )


  ksort() — сортировка по ключам в алфавитном порядке;
  krsort() — сортировка по ключам в обратном порядке:

  $Mass['Один'] = 1;
  $Mass['Два'] = 2;
  $Mass['Три'] = 3;
  $Mass['Четыре'] = 4;
  krsort($Mass);
  print_r($Mass);
  // Array ( [Четыре] => 4 [Три] => 3 [Один] => 1 [Два] => 2 )


Если нужно изменить порядок стандартной сортировки, можно задать свою
сортировку с помощью следующих функций:

  usort() — для пользовательской сортировки списков;
  uksort() — для пользовательской сортировки ассоциативных массивов
по ключам;
 uasort() — для пользовательской сортировки ассоциативных массивов
по значениям.

В качестве первого аргумента этим функциям передается массив, а второй
аргумент должен содержать имя функции, сравнивающей два элемента.
Функция сравнения принимает две переменные и должна возвращать:

   1 — если первый больше второго;
  -1 — если второй больше первого;
   0 — если элементы равны.
Например, стандартная сортировка зависит от регистра символов:
  $Mass = array('единица1', 'Единый', 'Единица2');
  sort($Mass);
  print_r($Mass);
  // Array ( [0] => Единица2 [1] => Единый [2] => единица1 )


В результате мы получим неправильную сортировку, ведь Единый и Единица2
больше единица1. Изменим стандартную сортировку на свою сортировку, не
учитывающую регистр.

Пользовательская сортировка
  function f_sort($Str1, $Str2) { // Сортировка без учета регистра

   $Str1_1 = strtolower($Str1); // Преобразуем к нижнему регистру

   $Str2_1 = strtolower($Str2); // Преобразуем к нижнему регистру
   if ($Str1_1>$Str2_1) return 1;
   if ($Str1_1<$Str2_1) return -1;
   return 0;
  }
  setlocale(LC_CTYPE, "ru_RU.CP1251"); // Настройка локали
  $Mass = array('единица1', 'Единый', 'Единица2');
  usort($Mass, "f_sort");
  print_r($Mass);
  // Array ( [0] => единица1 [1] => Единица2 [2] => Единый )


Для получения правильной сортировки мы приводим две переменные к 
одному регистру, а затем производим стандартное сравнение. Заметьте, 
что регистр самих элементов массива не изменяется, так как мы работаем 
с их копиями. Для правильной работы функции strtolower() с русским 
языком необходимо настроить локаль. Это позволяет сделать функция 
setlocale()Более подробно мы рассмотрим функцию setlocale() при 
изучении функций обработки строк.












вторник, 20 ноября 2012 г.

Переворачивание и перемешивание массива


Функция array_reverse() возвращает массив, элементы
которого следуют в обратном порядке относительно
исходного массива:
  $Mass = array('Один', 'Два', 'Три', 'Четыре');
  $Mass = array_reverse($Mass);
  print_r($Mass);
  // Array ( [0] => Четыре [1] => Три [2] => Два [3] => Один )


Функция shuffle() "перемешивает" массив. Элементы массива будут расположены 
в случайном порядке:
  $Mass = array('Один', 'Два', 'Три', 'Четыре');
  shuffle($Mass);
  print_r($Mass);
  // Array ( [0] => Два [1] => Один [2] => Три [3] => Четыре )



Добавление и удаление элементов массива


Для добавления и удаления элементов массива используются
следующие функции:
array_unshift(<Массив>, <Элемент>) добавляет элементы в 
начало массива:
$Mass[0] = 'Три';
$Mass[1] = 'Четыре';
array_unshift($Mass, 'Один', 'Два');
print_r($Mass);
                // Array ( [0] => Один [1] => Два [2] => Три [3] => Четыре )

конструкция <Массив>[] — добавляет элементы в конец массива:
  $Mass[0] = 'Один';
  $Mass[1] = 'Два';
  $Mass[] = 'Три';
  print_r($Mass);
  // Array ( [0] => Один [1] => Два [2] => Три )

array_push(<Массив>, <Элемент>) добавляет элементы в конец массива:
  $Mass[0] = 'Один';
  $Mass[1] = 'Два';
  array_push($Mass, 'Три', 'Четыре');
  print_r($Mass);
  // Array ( [0] => Один [1] => Два [2] => Три [3] => Четыре )

array_shift(<Массив>) удаляет первый элемент массива и возвращает его:
  $Mass[0] = 'Один';
  $Mass[1] = 'Два';
  echo array_shift($Mass) . "<br>\n"; // Выведет: Один<br>
  print_r($Mass);
  // Array ( [0] => Два )

array_unique(<Массив>) возвращает ассоциативный массив, состоящий
из уникальных значений указанного ассоциативного массива:
  $Mass = array('Один' => 1, 'Два' => 2, 'Один' => 1,
  'Три' => 1, 'Четыре' => 4);
  $Mass2 = array_unique($Mass);
  print_r($Mass2);
  // Array ( [Один] => 1 [Два] => 2 [Четыре] => 4 )