我试图从PHP文件中删除所有PHP标记。我试图删除PHP标签,因为我想获得所有标签的所有html href值。我不知道是否可能?任何人都可以帮我解决这个问题吗?提前谢谢。
$removedPhptags = preg_replace('/^<\?php(.*)(\?>)?$/s', '$1', "http://localhost/project/test.php");
test.php的
<html>
<head>
<title>Test</title>
</head>
<body>
<div> <a href="test1.html" title="test"></a>
<?php
include './menulink.php';
$result_array="123";
if ($result_array=="123")
{
?>
<a href="test4.html" title="tesdfhdfhdfht2"></a>
<?php
else{
?>
<a href="test5.html" title="tedfhdfhst"></a>
<?php
}
?>
</div>
</body>
</html>
menulink.php
<html>
<head>
<title>Test</title>
</head>
<body>
<div> <a href="menulink1.html" title="test">m1</a> <a href="menulink2.html" title="test2">m2</a>
<?php
$result_array="123";
if ($result_array=="123")
{
?>
<a href="menulink3.html" title="tedfhdfhst">m3</a> <a href="menulink4.html" title="tesdfhdfhdfht2">m4</a>
<?php
}
else{
?>
<a href="menulink5.html" title="tedfhdfhst">m5</a> <a href="menulink6.html" title="tesdfhdfhdfht2">m6</a>
<?php
}
?>
</div>
</body>
</html>
答案 0 :(得分:4)
你在这里做的事情有两个问题,
第一个问题是preg_replace接受第三个参数为String
,您可能需要将文件内容作为字符串传递给它
第二个问题是你试图要求你的文件作为HTTP调用,你需要获取文件内容,实际上是通过调用链接本身你试图获得 呈现 输出。
$content = file_get_contents("path/to/file"); // not a file link
$removedPhptags = preg_replace('/^<\?php(.*)(\?>)?$/s', '$1', $content);
答案 1 :(得分:2)
除了@hassan已经给出的答案之外,你的正则表达式将不起作用:
因此,正则表达式所需要的只是:
<\?php(.*?)\?>
^ ^ not bound to start nor end (no ^ and $)
^ lazy matching, taking as few characters as possible