我编辑了一个主题,导致我的服务器负载非常高,
首先,我使用此代码仅从内容中获取文本
$response = get_the_content();
$content = $response;
$content = preg_replace("/(<)([img])(\w+)([^>]*>)/", "", $content);
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);
然后我想获取帖子内容中的所有图片,所以我使用了“DOMDocument”代码:
$document = new DOMDocument();
libxml_use_internal_errors(true);
$document->loadHTML($response);
libxml_clear_errors();
$images = array();
$imgsq = $document->getElementsByTagName('img');
我的每个帖子都包含一个静态部分而不是所有照片页面,所以我使用该代码来获取它
function findit($mytext,$starttag,$endtag) {
$posLeft = stripos($mytext,$starttag)+strlen($starttag);
$posRight = stripos($mytext,$endtag,$posLeft+1);
return substr($mytext,$posLeft,$posRight-$posLeft);
}
$project = @findit($content , '-projectinfostart-' , '-projectinfoend-');
$check = str_replace('ializer-buttons clearfix">', '', $project);
if($project != $check) $project = '';
$replace = array('-projectinfostart-' , '-projectinfoend-' , $project , '<p> </p>');
$content = str_replace( $replace, '', $content);
然后我最后想要以拇指大小拍摄所有照片,所以我使用了那段代码:
foreach($imgsq as $key => $img) :
// Extract what we want
$image = array('src' => $img->getAttribute('src') );
if( ! $image['src'])
continue;
if($key == $page) :
echo '<center><img style="height: auto !important;max-height:450px;" class="responsiveMe" src=" ' . $image['src'] . '" /> ';
endif;
$srcs[$key] = array();
$srcs[$key]['src'] = wp_get_attachment_thumb_url(get_attachment_id_by_url($image['src']));
$srcs[$key]['full'] = $image['src'];
if(!empty($project)) $description = '<p>' . $project . '</p>';
else $description = '';
endforeach;
我的服务器是16 GB Ram,无法在单个帖子页面上与1500名在线用户一起使用!关于导致这种高负荷的原因的任何想法?
感谢。