Maison >développement back-end >tutoriel php >Le modèle HTML termine le traitement de la page statique et de la pagination du modèle

Le modèle HTML termine le traitement de la page statique et de la pagination du modèle

炎欲天舞
炎欲天舞original
2017-08-21 10:20:041800parcourir

Il vous permet uniquement de modifier une certaine partie de la page. Bien entendu, cette « certaine partie » est déterminée par vous. L'artiste crée d'abord une page, puis nous utilisons cette page comme modèle (à noter que ce modèle n'a pas besoin d'utiliser du code comme EditRegion3, ce code est un logo réalisé par Dreamwerver pour faciliter sa propre conception), et utilisons ce modèle L'endroit que nous devons modifier est remplacé par un caractère qui peut être distingué du HTML, tel que "{title}", "[title]". Lors de la génération d'une page statique, il vous suffit de remplacer les données par ces chaînes. C’est à cela que servent les modèles.

Créez une nouvelle page php et une page html [page modèle] ; Remarque : Si les données sont appelées depuis la base de données, enregistrez les données sous forme de tableau puis générez-les en boucle Dans la page php, ouvrez la page html->Lire le contenu de la page html->Remplacer les paramètres->Créer (ouvrir) une nouvelle page html->Écrire le contenu remplacé dans un nouveau fichier-> Fermez le nouveau fichier->Générer avec succès ;


$open = fopen("template.htm","r"); //打开模板文件
$content = fread($open,filesize("template.htm")); //读取模板文件内容
//print_r($content);
$content = str_replace("{title}","测试标题",$content);//替换
$content = str_replace("{contents}","测试内容",$content);

$newtemp = fopen("1.htm","w");//生成,用写入方式打开一个不存在(新)的页面
fwrite($newtemp,$content);//将刚刚替换的内容写入新文件中
fclose($newtemp);
echo "生成
Test HTML de génération par lots PHP :


//假设从数据库中调的数据存放在二维数组$arr中
$arr = array(array("新闻标题一","新闻内容一"),array("新闻标题二","新闻内容二")); 

foreach($arr as $key=>$value){
 $title = $value[0];
 $contents = $value[1];
 //echo $title.''.$contents.'';
 $path = $key.'.html';
 $open = fopen("template.htm","r"); //打开模板文件
 $handle = fread($open,filesize("template.htm")); //读取模板文件内容

 $content = str_replace("{title}",$title,$handle);//替换
 $content = str_replace("{contents}",$contents,$handle);

 $newtemp = fopen($path,"w");//用写入方式打开一个不存在(新)的页面
 fwrite($newtemp,$content);//将刚刚替换的内容写入新文件中
 fclose($newtemp);
 echo "生成";
}
Problème de pagination :

Si on précise la pagination, il y aura 20 articles par page. Il y a 45 articles dans une certaine liste de sous-canaux selon la requête de la base de données. Tout d'abord, nous obtenons les paramètres suivants par requête : 1, le nombre total de pages ; La deuxième étape, pour ($i = 0; $i < allpages; $i++), l'acquisition, l'analyse et la génération d'articles de page sont toutes exécutées dans cette boucle. La différence est que la phrase die ("Create file".$filename."Success!"; est supprimée et placée à l'écran après la boucle, car cette instruction interrompra l'exécution du programme. Par exemple :


$fp= fopen ("temp.html","r");
$content= fread ($fp,filesize ("temp.html"));
$onepage= ’20’;
$sql    = "select id from article where channel=’$channelid’";
$query  = mysql_query ($sql);
$num    = mysql_num_rows ($query);
$allpages= ceil ($num / $onepage);
for ($i = 0;$i<$allpages; $i++){
    if ($i == 0){
        $indexpath = "index.html";
    } else {
        $indexpath = "index_".$i."html";
    }
    $start = $i * $onepage;
    $list  = ’’;
    $sql_for_page = "select name,filename,title from article where channel=’$channelid’ limit $start,$onepage";
    $query_for_page = mysql_query ($sql_for_page);
    while ($result = $query_for_page){
        $list .= ’<a href=’.$root.$result[’filename’].’ target=_blank>’.$title.’</a><br>’;
    }
    $content = str_replace ("{articletable}",$list,$content);
    if(is_file ($indexpath)){
        @unlink ($indexpath); //若文件已存在,则删除
    }
    $handle = fopen ($indexpath,"w"); //打开文件指针,创建文件
    if (!is_writable ($indexpath)){
        echo "文件:".$indexpath."不可写,请检查其属性后重试!"; //修改为echo
    }
    if (!fwrite ($handle,$content)){   //将信息写入文件
        echo "生成文件".$indexpath."失败!"; //修改为echo
    }
    fclose ($handle); //关闭指针
}
fclose ($fp);
die ("生成分页文件完成,如生成不完全,请检查文件权限系统后重新生成!");

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn