2013-08-12 6 views
0

PHP 파일이 있는데, 현재 함수를 다른 것으로 바꾸어야하는 스크립트를 작성하고 있습니다. 이 작업을 수행 할 때 가장 좋은 방법은 두 행 번호 (항상 같을 것임), 126 및 136 사이를 살펴본 다음 두 행을 바꾸는 것입니다.PHP 파일의 두 줄 사이에 내용 바꾸기

내가 할 수없는 것은 수정 자 스크립트의 원래 함수를 포함하므로 함수 이름 등의 파일을 살펴볼 수 없습니다. (내가 소유하지 않은 다른 유료 스크립트를 수정하는 스크립트를 작성하고 있습니다. 저작권 그래서 나는 그것을 포함 할 수 없다).

내가 교체해야 할 기능은

function upload_supports_preview($upload) { 

    if($upload->thumbnail != 'none') { 

    return true; 

    } 

    return false; 

} 

내가이

function upload_supports_preview($upload) { 

    if($upload->type == 'video' || $upload->type == 'audio' || $upload->type == 'image') { 

    return true; 

    } 

    return false; 

} 
+0

"다른 유료 스크립트"... 저작권 보호를받는 코드 일 가능성이 가장 높습니까? 당신이 돈을 지불했는지 아닌지에 상관없이 어떤 것을 바꿀 수 있습니까? 저작권으로 보호되어 있으므로 해당 코드를 변경할 권한이 부여됩니까? – arkascha

+0

왜 그런 스크립트가 필요합니까? 여러 파일에 해당 코드가있는 경우 복사 및 붙여 넣기를 통해 코드를 복제하고있는 것입니다. 대신 복제를 수정하십시오. – Gordon

+0

CodeCanyon을 통해 온라인으로 사용할 수있는 스크립트가 있으며, 내가하고있는 일은 추가 기능을 추가하기 위해 CodeCanyon 스크립트를 수정 한 별도의 스크립트를 작성하는 것입니다. 스크립트 작성자의 허락을 받았지만 스크립트에 스크립트를 포함시키지 않았다는 전제하에 제공합니다. –

답변

0

runkit 당신이 런타임에 함수를 정의를 해제 할 수 있습니다로 교체해야합니다, 당신은 그것을 방법을 다시 정의 할 수 있습니다 너는하고 싶어. 즉, 스크립트를 변경할 필요는 없지만 원하는 코드를 삽입 할 수 있습니다. 스크립트가 상업용 라이센스로 출판 된 경우 저작권을 확인하십시오. 가장 가능성이 높습니다.

+3

이 대답을 (더) 유용하게 사용하려면 해당 매뉴얼 페이지와 runkit의 적절한 함수에 링크 할 수 있습니다. http://meta.stackexchange.com/questions/7656/how-do-i-write-a-good-answer-to-a-question – Gordon

+0

구글에'runkit'을 입력하면 처음으로 히트됩니다. . – arkascha

+0

링크를 쓰면 그 코멘트를 쓰는 데 걸린 시간과 같은 시간이 걸렸을 것입니다. – Gordon

1

나에게 매우 좋은 생각처럼 들리지는 않지만 아주 좋은 해결책은 아니지만 작동해야합니다.

$filename = '/home/xyz.php'; 

// this loads the file into an array 
$lines = file($filename); 

// edit each line of code 
$lines[126] = '// put some code here'; 
$lines[127] = '// put some code here'; 
$lines[128] = '// put some code here'; 
$lines[129] = '// put some code here'; 
$lines[130] = '// put some code here'; 
$lines[131] = '// put some code here'; 
$lines[132] = '// put some code here'; 
$lines[133] = '// put some code here'; 
$lines[134] = '// put some code here'; 
$lines[135] = '// put some code here'; 
$lines[136] = '// put some code here'; 

// write the file back to disk 
// this joins the array back into a string, using the current end of line marker from your system, which could be different to what the source file used, but will still work 
file_put_contents($filename, join(PHP_EOL, $lines));