Манипулировать файлом PHP с помощью PHP

#php #html #save

#php #HTML #Сохранить

Вопрос:

Я хочу заменить определенные строки в php-файле, вызвав функцию. Все, что я получил до сих пор, это:

 function change_data($data1, $data2)
{
    //Read php file in $result
    $result= str_replace("tag1", $data1, $result);
    $result= str_replace("tag2", $data2, $result);
    //Save php file
}
  

Можете ли вы мне помочь и сохранить ли его, чтобы никто другой не мог получить доступ к файлу?

Редактировать: я попробовал следующее:

 function change_data($data1, $data2)
{
    $file = 'test.php';
$result = file_get_contents($file);
    //Replace initial with test
$result = str_replace("intial", "test", $result);

file_put_contents($file, $result);
}
  

В файле ничего не меняется.

Ответ №1:

Посмотрите на функции file_get_contents() для чтения и file_put_contents() записи файлов из файловой системы и в файловую систему.

Комментарии:

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

Ответ №2:

это сохранить, чтобы никто другой не мог получить доступ к файлу?

Это может быть очень эффективным способом защиты вашего каталога. Любой другой каталог в public_html может быть защищен таким же образом. Этот метод работает только в том случае, если вам назначен статический IP-адрес. Любой, кто попытается просмотреть такие каталоги, используя другой IP-адрес, получит ошибку 403 Forbidden.

  1. В каталоге, который вы хотите защитить, откройте (или создайте) файл с именем .htaccess . (Обратите внимание на точку в начале имени файла.)
  2. Добавьте следующий код в этот файл, заменив 100.100.100.100 в этом примере статическим IP-адресом, который вы планируете разрешить:

Запретить заказ, разрешить запретить для всех Разрешить с 100.100.100.100

Ответ №3:

 function change_data($data1, $data2)
{
    $file = 'change_this_with_filename';
    $result = file_get_contents($file);

    $result = str_replace(array("tag1", "tag2"), array($data1, $data2), $result);

    file_put_contents($file, $result);
}