bash — Использование sed в PHP для удаления переменного IP-адреса

Я написал этот код PHP:

<?php
$IP = getHostByName(getHostName());
shell_exec('sed -e "s/$IP//g" -i /home/user/IPs.txt');
unset($IP);
?>

В целях регистрации IP-адреса пользователя в переменной $ IP, а затем удаления его IP-адреса из списка (/home/user/IPs.txt), однако, просмотр сценария из веб-браузера не работает и запуск его из командная строка дает вывод:

sed: -e expression #1, char 0: no previous regular expression

Что я могу сделать, чтобы исправить эту ошибку? Любая помощь приветствуется.

0

Решение

Характер $ имеет особое значение в sed который соответствует концу строки, чтобы избежать путаницы, вы можете использовать конкатенация строк

shell_exec('sed -e "s/'.$IP.'//g" -i /home/user/IPs.txt');

Или, если вы предпочитаете использовать Фигурные скобки переменная внутри двойных кавычек

shell_exec("sed -e 's/{$IP}//g' -i /home/user/IPs.txt");
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector