Я написал этот код 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
Что я могу сделать, чтобы исправить эту ошибку? Любая помощь приветствуется.
Характер $
имеет особое значение в 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");
Других решений пока нет …