[英]Preg_Replace with preg_grep
我正在嘗試使用 PHP 在腳本標記之前和之后添加代碼
<script>
hbspt.forms.create({
region: "na1",
portalId: "",
formId: ""
});
</script>
我正在嘗試使用 preg_replace 來實現 preg_grep 來實現它,但我無法在 preg_replace 中使用多個變量,如果我使用數組,它只是輸出數組。
$result = preg_grep("/hbspt\s*([\s\S]*?);/", $matches);
$before = 'before';
$after = 'after';
$final = $before = $after;
$regexes = '/hbspt\s*([\s\S]*?);/';
return preg_replace( $regexes, "before $result after", $buffer );
我哪里出錯了?
我想要的結果
<script>
before
hbspt.forms.create({
region: "na1",
portalId: "",
formId: ""
});
after
</script>
實現您想要的最簡單方法是:
$before = 'before';
$after = 'after';
$source = '<script>
hbspt.forms.create({
region: "na1",
portalId: "",
formId: ""
});
</script>';
echo "<script>\n$before\n" .
strip_tags($source) .
"\n$after\n</script>";
這導致:
<script>
before
hbspt.forms.create({
region: "na1",
portalId: "",
formId: ""
});
after
</script>
請參閱PHP fiddle和strip_tags() 。
或者,但稍微復雜一點,將是:
echo "<script>\n$before\n" .
substr($source, 8, -9) .
"\n$after\n</script>";
請參閱: PHP Fiddle和substr() 。
優點是它不會刪除您的 javascript 中的任何標簽。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.