PHP写PHP文件

1、效果

PHP写PHP文件

2、代码

/**
 * @todo 调用方法
 */
public function testAction(){
	$id = isset($_GET['id']) ? (int)$_GET['id'] : '';
	if (empty($id)){
		die('参数缺失');
	}
	$this->createNewPage($id);
	exit();
}

/**
 * @todo 根据ID往类中写不同的方法
 * @param unknown $id
 */
function createNewPage($id){
	/** 添加控制器 */
	$filePath = APP_PATH.'/app/controllers/Test.php';
	if(!file_exists($filePath)){
		$content = '<?php'.PHP_EOL.
		'class AboutController extends BasicController {'.PHP_EOL.
		'	public function getPage($id){'.PHP_EOL.
		'		$mTest = new TestModel();'.PHP_EOL.
		'		$info = $mTest->getOne([["id",$id]]);'.PHP_EOL.
		'		$this->getView()->assign("info", $info);'.PHP_EOL.
		'		$this->display("index");'.PHP_EOL.
		'		exit();'.PHP_EOL.
		'	}'.PHP_EOL.
		'}';
		file_put_contents($filePath, $content, FILE_APPEND | LOCK_EX );
	}

	/** 添加类 */
	$actionName = 'test'.$id.'Action';
	$actionContent = 	'	public function '.$actionName.'(){'.PHP_EOL.
	'		$this->getPage('.(int)$id.');'.PHP_EOL.
	'	}'.PHP_EOL.
	'}';

	/** 把类追加到之前的文件中 */
	$count = count(file($filePath));
	$fp = fopen( $filePath, 'r+' );
	if ($fp) {	//修改最后一行的数据
		$i = 1;
		while (!feof($fp)) {
			if ($i == $count) {	//修改最后一行数据
				fseek($fp, 0, SEEK_CUR);	//替换某一行
				fwrite($fp, $actionContent);			//替换某一行的详情
				break;
			}
			fgets($fp);
			$i++;
		}
		fclose($fp);
	}
}

 

相关文章: