0

我有一个 PHP 文件,我现在正在编写一个脚本,需要用另一个函数替换一个函数。我认为这样做的最佳方法是查看两个行号(始终相同)126 和 136,然后在这两行之间进行替换。

我不能做的是在修改脚本中包含任何原始函数,所以我不能只查看文件中的函数名称等(我正在创建一个脚本来修改另一个我不拥有版权的付费脚本,所以我不能包括任何一个)。

我需要替换的功能是

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;

}
4

2 回答 2

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));
于 2013-08-12T06:26:37.780 回答
0

runkit允许您在运行时取消定义函数,然后您可以按照您想要的方式重新定义它。这意味着您不必更改脚本,但可以注入您想要的代码。如果脚本是在商业许可下发布的,请检查版权,很可能您违反了它。

于 2013-08-12T06:25:04.793 回答