PHP를 사용하여 Windows에서 쉘 스크립트를 만들려고합니다. 더 큰 기능 중 일부입니다. "- 그런 파일이나 디렉토리 잘못된 인터프리터"오류이 파일이 서버에 도착하면Windows에서 PHP로 UNIX 안전 테스트 만들기
$contents_str = ''.
'#!/bin/bash
yes | apt-get update
yes | apt-get upgrade
useradd sudoer -g sudo -s /bin/bash -m
echo "sudoer:sudoerpass" | chpasswd';
그러나, 내가 얻을 :
여기 내 스크립트입니다. 파일에 숨겨진 창 문자가 있기 때문입니다.
PHP에서 숨겨진 창 문자를 제거하는 데 사용할 수있는 함수 또는 스크립트가 있습니까? 또는 서버에서이 작업을 수행하는 데 사용할 수있는 단일 bash 명령이 있습니까?
파일에 dos2unix를 사용했는데이 작업을 수행 한 후에 작동하지만 dos2unix를 사용하지 않는 이유는 서버에 설치해야 할 것이므로 사용할 수있는 것이 필요하기 때문입니다. 우분투 상자.
감사합니다.
편집는 :
난 그냥 preg_replace이다를 사용하여 문자열을 정리하는 방법을 발견했다. 이 나를 위해 어떤 문제없이 작동
$contents_nixsafe_str = preg_replace('/(\r\n|\r|\n)/s', "\n" , $contents_str);
:
여기에 (물론, 이미 위에서 게시 된 코드에서 계속) 코드입니다.
창을 사용하지 마십시오?/me laughs 그러나 텍스트 편집기에는 Unix 호환 줄 바꿈 옵션이 있어야합니다. 나는 그것들을 들여다보고 그것을 사용하고 있는지 확인합니다. –
@ 브래드 : 셸 스크립트를 작성하고 문제가 없을 때 메모장 ++을 사용합니다. 그러나,이 인스턴스에서 PHP (Zend Studio 8 사용)에 쉘 스크립트 컨텐츠가 필요합니다. –
절대로 사용하지 마십시오. 그러나 Windows에 append 한 것처럼 줄 바꿈을 UNIX 스타일로 설정하는 설정이 있어야합니다. 저를 둘러싼 코딩은 나쁜 습관이 될 것입니다. 소스에서 문제를 해결하고 해킹하지 않는 것이 좋습니다. 그러나 각자 자신에게. Zend Studio에 대한 도움이 필요하면 http://forums.zend.com/viewtopic.php?f=50&t=2158 및 http://forums.zend.com/viewtopic.php를 찾으셨습니까?fend = 59 & t = 3799 Zend가 왜 이런 실수를 저지를 지 모르겠다. –