1
出力バッファにいくつかの正規表現を実行したいのですが、次のコードでは目的の効果が得られません。私は最初に正規表現を実行して "{{"と "}}"で囲まれたものを置き換えたいと思っていますが、その後すぐにHTML出力を縮小したいと考えています。PHP str_replaceを出力バッファに2回
私は、
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{title}}</title>
<link href="css/cosmo.min.css" rel="stylesheet">
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
{{body}}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
</body>
付::
<?php
ob_start(function($buffer) {
$viewfile = join(DIRECTORY_SEPARATOR, array(VIEWS_ROOT, basename(pathinfo(__FILE__)['filename'] . "phtml")));
if (file_exists($viewfile)) {
$body = file_get_contents($viewfile);
} else {
$body = file_get_contents(join(DIRECTORY_SEPARATOR, array(VIEWS_ROOT, basename("index.phtml"))));
}
preg_replace(array("/\>[^\S ]+/s", "/[^\S ]+\</s", "/(\s)+/s"), array(">", "<", "\\1"), ob_get_contents());
return (str_replace(array("{{title}}", "{{body}}", "/\>[^\S ]+/s", "/[^\S ]+\</s", "/(\s)+/s"), array("Project", $body, ">", "<", "\\1"), $buffer));
});
require_once(join(DIRECTORY_SEPARATOR, array(LAYOUTS_ROOT, "layout.phtml")));
ob_end_flush();
?>
出力は、次のファイルのマージです:これまでに得たVEの
<h1>Hello, World</h1>
そして、私は次の出力たい:私は次のように上記のreturn文を置き換え所望の出力を得るために
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Project</title><link href="css/cosmo.min.css" rel="stylesheet"><!--[if lt IE 9]><script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script><script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]--></head><body><h1>Hello, Julian</h1><script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script><script src="js/bootstrap.min.js"></script></body></html>
あなたはプットの例を提供する必要がありますし、関連する所望の出力。 –
@Patrick Q - done –