Иллюстрированный самоучитель по PHP

Файл do.php

Переименование, выполнение действия

В том случае, если посетитель выбрал в качестве требуемого действия переименование, то на странице запроса дополнительной информации ему пришлось ввести новые имена для тех файлов и папок, переименовать которые он пожелал. Сценарию же выполнения действия передалось два массива со старыми и новыми именами этих обьектов – $afl и $rfl соответственно.

if ($ren!="")
{

Переберем все элементы массива со старыми именами – $af 1. Поскольку для совершения собственно переименования для каждого элемента массива со старыми именами нам также потребуется элемент массива $rf 1 с новыми именами под тем же порядковым номером, то перебирать эти элементы будем подряд, по номерам – с помощью цикла for:

for ($i = 0; $i < sizeof($afl); $i++)

Если новое имя не совпадает со старым и не является пустой строкой…

if (($rfl[$i]!="")&($rfl[$i]!=$afl[$i]))

…то можно переименовывать. Однако посетитель вполне может в новом имени указать символы, которые недопустимы для имен файлов – от пробелов до слэшей. Возвращать посетителя на этап ввода имени с выведением ему сообщения о недопустимых символах не будем – просто заменим все такие символы на знаки подчеркивания: "_". Тем более что такую замену можно совершить специальной командой PHP – strtr.

(Количество знаков подчеркивания в третьем параметре функции равно количеству указанных во втором недопустимых символов.)

Примечание
Функция strtr("строка", "заменяемые символы", "заменяющие символы") заменяет в строке, указанной в ее первом параметре, символы, приведенные в строке в ее втором параметре, на символы из строки в ее третьем параметре, стоящие в этой строке на тех же местах, что и заменяемые символы в строке в ее втором параметре
.

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

Функция просматривает строку в первом параметре символ за символом. Если очередной символ этой строки встречается и в строке во втором параметре, то функция:

  1. Смотрит, какой символ стоит в строке в ее третьем параметре на том же самом месте от начала строки, что и встреченный символ в строке во втором параметре.
  2. Заменяет в строке в первом параметре этот очередной символ на найденный в третьей строке. Например результатом выполнения функции:
strtr ("Оабвапабаво", "ба", "ру")

…будет строка:

"Оурвупуруво"

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

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.