2017-11-29 3 views
0

변수 IP : 목록에서 자신의 IP 주소를 삭제 한 후 변수 $ IP에 사용자의 IP 주소를 기록, 그리고 목적제거하기 위해 PHP에서 sed를 사용하여 나는이 PHP 코드를 작성했습니다 주소

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

을 나는이 오류를 해결하기 위해 할 수있는 일

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

: (/home/user/IPs.txt는) 그러나, 작동하지 않는 웹 브라우저에서 스크립트를 검색하고, 명령 줄에서 실행하면 출력을 제공? 어떤 도움을 주셔서 감사합니다.

+0

이는'$ IP '의 값이 비어 있기 때문입니다. 쉘에서 명령을 실행하기 전에 먼저'$ IP'를 검증해야합니다. – paul

+0

당신은 당신의 패턴 안에'$'기호를 \ –

답변

1

문자 $가 혼동을 피하기 위해, 줄의 끝과 일치 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"); 
관련 문제