


Une explication d'exemples de sortie de page optimisée en PHP et compatible avec l'accès des robots des moteurs de recherche
Utilisez PHP pour afficher la page. Si la page a beaucoup de contenu, l'utilisateur doit attendre que tout le contenu de la page soit chargé avant de pouvoir voir le contenu de la page.
1. Méthode d'optimisation de la sortie de page
Nous pouvons diviser le contenu de la page en plusieurs morceaux et les charger avec des requêtes simultanées asynchrones. Lorsqu'un élément de contenu est chargé avec succès, il sera affiché immédiatement sans avoir besoin d'attendre le chargement d'autres morceaux de contenu.
De cette façon, tant qu'un élément de contenu est chargé avec succès, les utilisateurs peuvent le voir immédiatement, améliorant ainsi l'expérience utilisateur.
Par conséquent, il vous suffit de conserver le contenu js dans la page et d'utiliser ajax pour demander à l'API de charger le contenu et de l'afficher.
<!-- 分块1 --><p id="result1"></p><script type="text/javascript">$(function() { $.get("api.php?id=1", {}, function(ret) { $("#result1").html(ret["html"]); },"json"); });</script><!-- 分块2 --><p id="result2"></p><script type="text/javascript">$(function() { $.get("api.php?id=2", {}, function(ret) { $("#result2").html(ret["html"]); },"json"); });</script><!-- 分块3 --><p id="result3"></p><script type="text/javascript">$(function() { $.get("api.php?id=3", {}, function(ret) { $("#result3").html(ret["html"]); },"json"); });</script>...
Le chargement de contenu de manière asynchrone et simultanée peut considérablement accélérer la sortie des pages.
2. La sortie de page est compatible avec les moteurs de recherche
Si vous utilisez le chargement simultané asynchrone pour afficher la page, la recherche n'est pas conviviale. moteurs et sera collecté par les moteurs de recherche. Le contenu n'est pas disponible car le contenu est chargé en utilisant ajax.
Par conséquent, nous devons déterminer si un robot du moteur de recherche y accède et afficher directement le contenu de la page au lieu d'utiliser des pages de sortie asynchrones et simultanées.
Déterminer si la méthode d'accès du robot du moteur de recherche
<?php// 判断是否搜索引擎机器人访问function isRobot() { $agent= strtolower(isset($_SERVER['HTTP_USER_AGENT'])? $_SERVER['HTTP_USER_AGENT'] : ''); if(!empty($agent)){ $spiderSite= array( "TencentTraveler", "Baiduspider+", "BaiduGame", "Googlebot", "msnbot", "Sosospider+", "Sogou web spider", "ia_archiver", "Yahoo! Slurp", "YoudaoBot", "Yahoo Slurp", "MSNBot", "Java (Often spam bot)", "BaiDuSpider", "Voila", "Yandex bot", "BSpider", "twiceler", "Sogou Spider", "Speedy Spider", "Google AdSense", "Heritrix", "Python-urllib", "Alexa (IA Archiver)", "Ask", "Exabot", "Custo", "OutfoxBot/YodaoBot", "yacy", "SurveyBot", "legs", "lwp-trivial", "Nutch", "StackRambler", "The web archive (IA Archiver)", "Perl tool", "MJ12bot", "Netcraft", "MSIECrawler", "WGet tools", "larbin", "Fish search", ); foreach($spiderSite as $val){ $str = strtolower($val); if(strpos($agent, $str) !== false){ return true; } } } return false; } ?>
Code complet et test
index.php est utilisé pour être consulté
<?phprequire 'server.php';// 获取内容$data1 = getData(1);$data2 = getData(2);$data3 = getData(3);// 调用模版include dirname(__FILE__).'/template.php';?>
template.php contenu du modèle de page
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <script src="jquery-1.11.0.min.js"></script> <title>内容模版</title> </head> <body> <?php echo $data1; ?> <?php echo $data2; ?> <?php echo $data3; ?> </body></html>
server.php Méthode principale d'obtention de contenu
<?php//获取数据,正常情况应该读取db,演示只用数组代替function getData($id){ // 数据 $data = array( 1 => '很久很久以前,在某个地方,有个很可爱的女孩。不幸的是,她父母双亡,而且家徒四壁,屋里除了一张可供歇息的床以外,就别无长物了。除此之外,她全身上下只剩下身上所穿的衣裳,还有一片好心人施舍给她有面包而已。这个小姑娘,是个心地善良、信心坚定的好女孩。不论境遇有多么凄惨不幸,她仍然深信,慈爱的上帝会默默地庇护着她。', 2 => '有一天,她只身上原野上去玩。她走着走着,忽然遇到一个衣衫褴褛的男子。他向女孩哀求道:“求求你!施舍一点东西给我这个可伶人吧!我实在是饿得快要受不了了啊!”听到这话,女孩便把自己仅有的那片面包拿出来,说道:“这是上帝的恩 典喔!”说完后, 女孩就继续上路了。走了一会儿,路旁突然出现了一个啼泣不已的男孩。“鸣——我的头好冷呀!就快冻僵了……你能不能施舍一点可以让我挡风的东西啊!”女孩便把自己头上那顶帽子脱了下来, 为男孩戴上。走了不久,她又碰到一个小孩。那孩子没有穿棉背心,冷得直打哆嗦。于是,好心的女孩便把自己的背心送给那个小孩。她继续往前走,突然又遇见另一个小孩。她再次答应对方的乞求,把上衣施舍给他。女孩再往前走,走进森林里。林深日尽,四周一下子变暗了起来。这时,又出现一个可怜的小男孩, 央求女孩把内衣脱给她。这个时候,虔诚又善良的女孩想:“现在天色已经暗下来了,任谁也看不清楚我的模样,就算脱掉内衣,应该无所谓吧!”因此,女孩脱下了内衣,送给乞讨的女孩。', 3 => '这个时候的女孩,真的是浑身赤裸、再无他物了。忽然间,天上闪烁的星星纷纷坠落,落在女孩的面前。天啊!它们都化成了闪亮耀眼的金币——货真价实的金币!而原先一丝不挂的孩,不知什么时候,竟裹上了一套细致、上等的亚麻衫!于是,这个好心的女孩,把金币捡回家,从此过着富足、快乐的生活。' ); $ret = ''; // 判断是否搜索引擎机器人 $is_robot = isRobot(); // 搜索引擎机器人访问 if($is_robot || defined('FORCE_SYNC_RESPONSE') && FORCE_SYNC_RESPONSE==true){ $ret .= '<p>'.$data[$id].'</p>'.PHP_EOL; // 普通用户访问,异步请求 }else{ $ret = '<p id="result'.$id.'"></p> <script type="text/javascript"> $(function() { $.get("api.php?id='.$id.'", {}, function(ret) { $("#result'.$id.'").html(ret["html"]); },"json"); }); </script>'.PHP_EOL.PHP_EOL; } return $ret; }// 判断是否搜索引擎机器人访问function isRobot() { $agent= strtolower(isset($_SERVER['HTTP_USER_AGENT'])? $_SERVER['HTTP_USER_AGENT'] : ''); if(!empty($agent)){ $spiderSite= array( "TencentTraveler", "Baiduspider+", "BaiduGame", "Googlebot", "msnbot", "Sosospider+", "Sogou web spider", "ia_archiver", "Yahoo! Slurp", "YoudaoBot", "Yahoo Slurp", "MSNBot", "Java (Often spam bot)", "BaiDuSpider", "Voila", "Yandex bot", "BSpider", "twiceler", "Sogou Spider", "Speedy Spider", "Google AdSense", "Heritrix", "Python-urllib", "Alexa (IA Archiver)", "Ask", "Exabot", "Custo", "OutfoxBot/YodaoBot", "yacy", "SurveyBot", "legs", "lwp-trivial", "Nutch", "StackRambler", "The web archive (IA Archiver)", "Perl tool", "MJ12bot", "Netcraft", "MSIECrawler", "WGet tools", "larbin", "Fish search", ); foreach($spiderSite as $val){ $str = strtolower($val); if(strpos($agent, $str) !== false){ return true; } } } return false; } ?>
api.phpInterface API utilisée par les requêtes asynchrones
<?phpdefine('FORCE_SYNC_RESPONSE', true); // 强制同步输出require 'server.php';// 获取分块内容$id = isset($_GET['id'])? $_GET['id'] : 1;$data = getData($id);// 输出header('content-type:application/json;charset=utf8');$ret = json_encode( array( 'html' => $data ) );echo $ret;?>
Test de l'accès utilisateur normal
<?php$url = 'http://localhost/index.php'; // 访问index.php$header = array();$data = doCurl($url, array(), $header);echo '<meta http-equiv="content-type" content="text/html;charset=utf-8">';echo '<xmp>';echo $data;echo '</xmp>';/** * curl请求 * @param String $url 请求地址 * @param Array $data 请求参数 * @param Array $header 请求header * @param Int $timeout 超时时间 * @return String */function doCurl($url, $data=array(), $header=array(), $timeout=30){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); $response = curl_exec($ch); if($error=curl_error($ch)){ die($error); } curl_close($ch); return $response; } ?>
Contenu de la page de sortie
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <script src="jquery-1.11.0.min.js"></script> <title>内容模版</title> </head> <body> <p id="result1"></p> <script type="text/javascript"> $(function() { $.get("api.php?id=1", {}, function(ret) { $("#result1").html(ret["html"]); },"json"); }); </script> <p id="result2"></p> <script type="text/javascript"> $(function() { $.get("api.php?id=2", {}, function(ret) { $("#result2").html(ret["html"]); },"json"); }); </script> <p id="result3"></p> <script type="text/javascript"> $(function() { $.get("api.php?id=3", {}, function(ret) { $("#result3").html(ret["html"]); },"json"); }); </script> </body></html>
utilise le chargement simultané asynchrone pour améliorer la vitesse de sortie des pages.
Test de l'accès des robots des moteurs de recherche
<?php$url = 'http://localhost/index.php'; // 访问index.php$header = array( 'user-agent: Googlebot' // 加入搜索引擎关键字);$data = doCurl($url, array(), $header);echo '<meta http-equiv="content-type" content="text/html;charset=utf-8">';echo '<xmp>';echo $data;echo '</xmp>';/** * curl请求 * @param String $url 请求地址 * @param Array $data 请求参数 * @param Array $header 请求header * @param Int $timeout 超时时间 * @return String */function doCurl($url, $data=array(), $header=array(), $timeout=30){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); $response = curl_exec($ch); if($error=curl_error($ch)){ die($error); } curl_close($ch); return $response; } ?>
Contenu de la page de sortie
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <script src="jquery-1.11.0.min.js"></script> <title>内容模版</title> </head> <body> <p>很久很久以前,在某个地方,有个很可爱的女孩。不幸的是,她父母双亡,而且家徒四壁,屋里除了一张可供歇息的床以外,就别无长物了。除此之外,她全身上下只剩下身上所穿的衣裳,还有一片好心人施舍给她有面包而已。这个小姑娘,是个心地善良、信心坚定的好女孩。不论境遇有多么凄惨不幸,她仍然深信,慈爱的上帝会默默地庇护着她。</p> <p>有一天,她只身上原野上去玩。她走着走着,忽然遇到一个衣衫褴褛的男子。他向女孩哀求道:“求求你!施舍一点东西给我这个可伶人吧!我实在是饿得快要受不了了啊!”听到这话,女孩便把自己仅有的那片面包拿出来,说道:“这是上帝的恩 典喔!”说完后, 女孩就继续上路了。走了一会儿,路旁突然出现了一个啼泣不已的男孩。“鸣——我的头好冷呀!就快冻僵了……你能不能施舍一点可以让我挡风的东西啊!”女孩便把自己头上那顶帽子脱了下来, 为男孩戴上。走了不久,她又碰到一个小孩。那孩子没有穿棉背心,冷得直打哆嗦。于是,好心的女孩便把自己的背心送给那个小孩。她继续往前走,突然又遇见另一个小孩。她再次答应对方的乞求,把上衣施舍给他。女孩再往前走,走进森林里。林深日尽,四周一下子变暗了起来。这时,又出现一个可怜的小男孩, 央求女孩把内衣脱给她。这个时候,虔诚又善良的女孩想:“现在天色已经暗下来了,任谁也看不清楚我的模样,就算脱掉内衣,应该无所谓吧!”因此,女孩脱下了内衣,送给乞讨的女孩。</p> <p>这个时候的女孩,真的是浑身赤裸、再无他物了。忽然间,天上闪烁的星星纷纷坠落,落在女孩的面前。天啊!它们都化成了闪亮耀眼的金币——货真价实的金币!而原先一丝不挂的孩,不知什么时候,竟裹上了一套细致、上等的亚麻衫!于是,这个好心的女孩,把金币捡回家,从此过着富足、快乐的生活。</p> </body></html>
Le contenu de la page est affiché directement, ce qui est convivial pour les moteurs de recherche.
Cet article explique des exemples d'accès compatibles par les robots des moteurs de recherche Pour plus de contenu connexe, veuillez prêter attention au site Web PHP chinois.
Recommandations associées :
Appel de ffmpeg via php pour obtenir des informations sur la vidéo
Utiliser MySQL pour déterminer si le point est dans la zone de polygone spécifiée
Utilisez imagemagick en php pour obtenir l'ancien effet photo
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Si vous êtes un développeur PHP expérimenté, vous aurez peut-être le sentiment d'y être déjà allé et de l'avoir déjà fait. Vous avez développé un nombre important d'applications, débogué des millions de lignes de code et peaufiné de nombreux scripts pour réaliser des opérations.

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

Une chaîne est une séquence de caractères, y compris des lettres, des nombres et des symboles. Ce tutoriel apprendra à calculer le nombre de voyelles dans une chaîne donnée en PHP en utilisant différentes méthodes. Les voyelles en anglais sont a, e, i, o, u, et elles peuvent être en majuscules ou en minuscules. Qu'est-ce qu'une voyelle? Les voyelles sont des caractères alphabétiques qui représentent une prononciation spécifique. Il y a cinq voyelles en anglais, y compris les majuscules et les minuscules: a, e, i, o, u Exemple 1 Entrée: String = "TutorialSpoint" Sortie: 6 expliquer Les voyelles dans la chaîne "TutorialSpoint" sont u, o, i, a, o, i. Il y a 6 yuans au total

Liaison statique (statique: :) implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Quelles sont les méthodes magiques de PHP? Les méthodes magiques de PHP incluent: 1. \ _ \ _ Construct, utilisé pour initialiser les objets; 2. \ _ \ _ Destruct, utilisé pour nettoyer les ressources; 3. \ _ \ _ Appel, gérer les appels de méthode inexistants; 4. \ _ \ _ GET, Implémentez l'accès à l'attribut dynamique; 5. \ _ \ _ SET, Implémentez les paramètres d'attribut dynamique. Ces méthodes sont automatiquement appelées dans certaines situations, améliorant la flexibilité et l'efficacité du code.
