提问人:Clms 提问时间:8/19/2019 更新时间:8/19/2019 访问量:89
Ob_start筛选关闭 <script> 标记错误
Ob_start filtering closes <script> tag wrong
问:
我正在使用 ob_start 来过滤 WordPress 后端页面。 我的脚本如下所示:
function remove_extra_field_profile()
{
$current_file_url = preg_replace( "#\?.*#" , "" , basename( $_SERVER['REQUEST_URI'] ) );
if( $current_file_url == "profile.php" )
{
add_action( 'wp_loaded', function(){ ob_start("profile_callback"); } );
add_action( 'shutdown', function(){ ob_end_flush(); } );
}
}
add_action( 'init', 'remove_extra_field_profile' );
function profile_callback( $html )
{
$profile_dom = new DOMDocument;
$profile_dom->loadHTML( $html );
$all_lines = $profile_dom->getElementsByTagname( 'tr' );
$excludes = array(
'user-syntax-highlighting-wrap',
'user-rich-editing-wrap'
);
$deletes = array();
foreach ( $all_lines as $line )
{
$tr_calss = $line->getAttribute("class");
if( in_array( $tr_calss, $excludes ) )
{
$deletes[] = $line;
}
}
$deletes[] = $profile_dom->getElementsByTagname( 'h2' )->item(0);
foreach ($deletes as $delete)
{
$delete->parentNode->removeChild( $delete );
}
return $profile_dom->saveHTML();
}
这工作正常。
但是一旦我添加了一个插件,该插件在profile.php中添加了一个选择字段(wordpress会自动添加某些内容),事情就会变得奇怪:
有了上面的“filtering-script”,结束标记(应该在末尾)将向前移动:</script>
<script type="text/html" id="tmpl-media-frame">
<div class="media-frame-menu"></script></div>
<div class="media-frame-title"></div>
<div class="media-frame-router"></div>
<div class="media-frame-content"></div>
<div class="media-frame-toolbar"></div>
<div class="media-frame-uploader"></div>
一旦我删除了PHP脚本,一切都很好。
为什么脚本会影响这部分?我能做些什么不同的事情?<script>
多谢!
答: 暂无答案
下一个:动态评估用户添加的 If 语句
评论
div
<script>