создание и продвижение сайта (вбиваю в ТОП-10, как гвозди)Настройка и сопровождение платной рекламы яндекс.директ

Практика 1

Задача

На локальном сервере есть папка, в ней файлы (все файлы типичны, кроме: 8, 88.php, index.htm, index.php). Требуется во всех этих файлах (кроме нетипичных) заменить текст "семь " на "7 ".

Внимание! Всегда надо иметь копию папки и права на нее должны быть 777 (доступ на чтение и запись на удаленном сервере; на локальном сервере доступ дается автоматически)!

    Алгоритм примерно такой:
  1. создать массив файлов в папке;
  2. удалить из этого списка нетипичные файлы;
  3. взять 1-й файл из этого массива (создать цикл), открыть его для изменений, заменить текст "Семь " на "7 " (" один " на " 1 "), сохранить этот файл с изменениями, перейти к следующему файлу;
  4. после последнего файла (завершения цикла) вывести отчет, сколько и какие файлы были изменены.

Решение

На удаленном и локальном серверах система работает по-разному. Поэтому алгоритм должен дублироваться (т.к. разные пути до корня системы). И вот, чтобы уйти от дублирования, вводится переменная, отвечающая за корневой адрес. И в зависимости от того, где будет работать система, будет подставляться данная переменная:

<?$k1=$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'];$k2=strlen($k1);if($k2>33){$d='/home/vhosts/'.$w0.'/ph/'.basename(realpath(__DIR__.'/'));}else{$d='/0/domains/podolsk/ph/praktika1/';}?>

  1. создать массив файлов в папке

    <?$f=scandir($d);print_r($f)?>


    Warning: scandir(/0/domains/podolsk/ph64/): failed to open dir: No such file or directory in /home/vhosts/podolsk.xp3.biz/ph/ph64/index.php on line 18

    Warning: scandir(): (errno 2): No such file or directory in /home/vhosts/podolsk.xp3.biz/ph/ph64/index.php on line 18

  2. удалить из этого списка нетипичные файлы

    <?$f=scandir($d);unset($f[array_search('8',$f)]);unset($f[array_search('88.php',$f)]);unset($f[array_search('index.htm',$f)]);unset($f[array_search('index.php',$f)]);$f=array_diff($f,array('.'));$f=array_diff($f,array('..'));print_r(array_values($f))?>


    Warning: scandir(/0/domains/podolsk/ph64/): failed to open dir: No such file or directory in /home/vhosts/podolsk.xp3.biz/ph/ph64/index.php on line 21

    Warning: scandir(): (errno 2): No such file or directory in /home/vhosts/podolsk.xp3.biz/ph/ph64/index.php on line 21

    Warning: array_search() expects parameter 2 to be array, boolean given in /home/vhosts/podolsk.xp3.biz/ph/ph64/index.php on line 21

    Warning: array_diff(): Argument #1 is not an array in /home/vhosts/podolsk.xp3.biz/ph/ph64/index.php on line 21

    Warning: array_values() expects parameter 1 to be array, null given in /home/vhosts/podolsk.xp3.biz/ph/ph64/index.php on line 21

  3. взять 1-й файл из этого массива (создать цикл), открыть его для изменений, заменить текст "Семь " на "7 " (" один " на " 1 "), сохранить этот файл с изменениями, перейти к следующему файлу


    Warning: scandir(/0/domains/podolsk/ph64/): failed to open dir: No such file or directory in /home/vhosts/podolsk.xp3.biz/ph/ph64/index.php on line 23

    Warning: scandir(): (errno 2): No such file or directory in /home/vhosts/podolsk.xp3.biz/ph/ph64/index.php on line 23

    Warning: array_search() expects parameter 2 to be array, boolean given in /home/vhosts/podolsk.xp3.biz/ph/ph64/index.php on line 23

    Warning: array_diff(): Argument #1 is not an array in /home/vhosts/podolsk.xp3.biz/ph/ph64/index.php on line 23

    Warning: Invalid argument supplied for foreach() in /home/vhosts/podolsk.xp3.biz/ph/ph64/index.php on line 23

  4. после последнего файла (завершения цикла) вывести отчет, сколько и какие файлы были изменены

    Файлы меняются все.

    <?$f=scandir($d);unset($f[array_search('8',$f)]);unset($f[array_search('88.php',$f)]);unset($f[array_search('index.htm',$f)]);unset($f[array_search('index.php',$f)]);$f=array_diff($f,array('.'));$f=array_diff($f,array('..'));print_r(array_values($f))?>


    Warning: scandir(/0/domains/podolsk/ph64/): failed to open dir: No such file or directory in /home/vhosts/podolsk.xp3.biz/ph/ph64/index.php on line 34

    Warning: scandir(): (errno 2): No such file or directory in /home/vhosts/podolsk.xp3.biz/ph/ph64/index.php on line 34

    Warning: array_search() expects parameter 2 to be array, boolean given in /home/vhosts/podolsk.xp3.biz/ph/ph64/index.php on line 34

    Warning: array_diff(): Argument #1 is not an array in /home/vhosts/podolsk.xp3.biz/ph/ph64/index.php on line 34

    Warning: array_values() expects parameter 1 to be array, null given in /home/vhosts/podolsk.xp3.biz/ph/ph64/index.php on line 34

Отвечу на любые вопросы. С уважением, Дмитрий Владимирович.

Ваше письмо×
Free Web Hosting