ホームページ  >  記事  >  バックエンド開発  >  obstartのちょっとした使い方

obstartのちょっとした使い方

WBOY
WBOYオリジナル
2016-07-29 09:10:081144ブラウズ

opencart画像読み込み処理時にlazylaod jqueryプラグインを使用したいのですが
Webサイトのフロントエンドは表示されるのですが、バックグラウンドで読み込みを行うと2つ見つかり、バックグラウンドで編集した商品の画像が表示されません。表示されます。

バックグラウンドで手動で商品を追加することなく、クローラーを使用して自動的に商品を入力しているためです。つまり、画像を表示するためのlazyload処理を行う際に、src data-data-original width height属性が一括生成されるため、背景表示は見えませんが、review要素は見えます。

PHPはこんな感じで追加すると以下のように再現できます:

<code>foreach (xx as x){
 $imgs.='<img src="image/catalog/lazyload_grey.gif" 
 data-original='.$tmp.'image/catalog/product/'.$id."/".$value.' 
 width="800" height='800'>';
}
</code>

その時、バックグラウンドのコントローラーの正規表現を置き換えれば良いのではないかと思い試してみたところうまくいきました。ただし、製品がアップデートされると上書きされます。

よく考えてみると、jsやob関数を使ってフロント経由で処理した方が良いです。

私はこれら 2 つのどちらにも対処したことがありませんが、今でも自分のアイデアを記録し、Web サイトに本当に最適化が必要になるまで待ってから具体的な行動を起こします。

以下は ob 関数の小さな例です:

<code><?php
    ob_start();
    echo  '13712345678';
    echo 'another content<br>';
    $result=ob_get_contents();
    echo '<hr>';
    
    ob_clean();
  
    if(preg_match('/\d{11,}/', $result,$match)){
         echo str_replace(substr($match[0],-4),'****',$match[0]);
    }else{
        echo 'no match';
    }
    ob_end_flush();
    
    // result:1371234****
</code>

私はこれに対処したことがなく、どちらの方法もあまり良くないと感じています。画像の遅延読み込みなどの遅延読み込みが発生したときに、フロントエンドとバックエンドが一貫して表示されない問題に対処するための方法やアイデアをさらに提供していただければ幸いです。

参考サイト:

ob関数がlazyloadを処理する

lazyload

以上、obstart のちょっとした使い方を内容も含めて紹介しましたが、PHP チュートリアルに興味のある友人の参考になれば幸いです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。