接上一篇PHP例解Webzine编辑和发送(二)
作为构建动态网页的一种语言,PHP提供了一种简化的方法来构造复杂而功能强大的与 Web 相关的程序。 Erik用一个原始的、现实世界的网站示例逐步说明了PHP的基本原理。本系列文章的第3、4部分介绍发送模块如何向读者呈现一个故事菜单,并说明编辑模块如何使作者能将故事提交给Webzine。
如果您是初次接触PHP,您可能会惊喜地发现在实践中它是多么易于使用。本文旨在使您对PHP的工作方式留下一个好的印象; 随后您就可以确定它是否适合您。
简介
在本文的第1、2部分,我介绍了Webzine 这个简单PHP应用程序的发送部分。尽管只有大约3K的代码,但它包含了许多功能。您已试用了这个应用程序,并开始研究它的后台工作方式。我说明了应用程序如何向用户显示类别菜单并根据选择显示故事。我还使读者对PHP应用程序的工作方式以及它们从调用页接收参数的方式有了一定的了解。
本文是第3部分,您首先会了解到发送模块是如何将故事菜单呈现给读者的,然后还会快速查看一下使作者能向Webzine 提交故事的编辑模块。
故事菜单
文件中的每个故事在主题菜单文件中都有对应的一行。我已决定将脱字符号("^")用作定界符来分隔文件中的不同项目,但您可以使用任何字符(制表符是一种通用的选择)。下面是基本的布局:
故事编号^标题^图像 URL^摘要
.
举例来说,仅包含三个故事的主题菜单文件 (TradeShow.txt)可能如下所示:
清单1.包含三个故事的主题菜单文件
33^Great New Products This Year^/images/proddemo.jpg^Thursday's product demo ...
12^Opening Event Well Attended^/images/opnfoto.jpg^Ticket sales to the ...
5^Trade Show Opens^/images/tradelogo.gif^The Fourth Annual Trade Show ...
菜单驱动程序接受这些信息并向读者提供一个故事概述。其工作方式如下:
首先,驱动程序将适当的条目编号从主题菜单文件复制到数组$stories 中。对于上面的示例,$stories[0]包含第一行(故事编号为 33),$stories[1] 包含故事编号 12,$stories[2] 包含故事编号5。您还需要统计数组中的元素个数,并将其保存在变量$numstories 中。
下一步,驱动程序将此信息提供给用户,如下所示:
清单 2.驱动程序
for ($i=0; $i $storyinfo = split("\^", $stories[$i]);
$storynum = $storyinfo[0]; // 故事编号(例如 33)
$storydesc = $storyinfo[1]; // 故事标题(例如 "Great New Products This Year")。
$storyimg = $storyinfo[2]; // 图像 URL(例如 "/images/proddemo.jpg")。
$dtext = $storyinfo[3]; // 故事摘要(更长的文本说明)。
$url = "$storydesc
";
if ($i $url = "
" . $url . "
";if ($storyimg != "") {
$url = "
. " src=\"$storyimg\">
. $url;
}
$url = "
" . $url;
} else {
$url = "
" . $url . "
";}
echo("$url\n");
echo("
$dtext
\n");}
split函数将故事信息的内容从一个字符串复制到一个数组中。请注意,脱字符号前面加了一个反斜杠从而成为“转义”字符。该程序将数组节点转换为说明性更强的变量名,从而使代码更易于阅读。然后就会构造URL。if/else 结构对前10个故事的处理与对其他故事的处理不同。前10个故事有一个分隔线,使用H2标记,并包括一张照片(如果有)。剩余的故事使用H3标记,没有分隔线,也没有照片。这个处理突出显示最新的故事,并保留较旧的故事供需要它们的读者访问。请注意,编号为奇数的的图像是右对齐的,而编号为偶数的图像是左对齐的。
作为本例的结束,为上面的 theTradeShow.txt 文件所生成的HTML代码如下所示:
清单 3. 为 theTradeShow.txt 文件所生成的 HTML 代码
Great New Products This Year
Thursday's product demo included a couple of exciting new
surprises from competing firms in the industry.
Opening Event Well Attended
Ticket sales to the Trade Show opening event were
up 15% from last year's show.
Trade Show Opens
The Fourth Annual Trade Show opened 10/11/2000 to an enthusiastic reception
from attendees.
单击此处查看 index.php3的源代码。在开始下一部分之前您可能希望查看整组源代码。毕竟代码的大小还不到3K!
编辑页 "author.php3"
对编辑页的分析不会像对发送模块的分析那样详细,因为它比较长,而且我们已经讨论了许多基本概念。
为了简要说明一个 PHP 函数的基本结构,让我们看一下编辑模块中的complain函数。这是一个简单的函数,但它是一个很好的入门级材料。
清单 4. 一个 PHP 函数示例
//通知用户输入问题。
function complain($problem) {
global $status;
if ($status != "") $status = $status . "
\n";
$status = $status . $problem;
}
您可以在代码中的任何地方调用这个函数。例如,complain("The URL is too long."); 接收全局变量 $status并将这个新的错误消息追加到其尾部,如果 $status不为空,则在错误消息前添加一个换行符。
Prepend
prepend函数是编辑模块中最重要的函数之一。它在文件的首行添加一个新条目。下面,我使用它将作者的新提交添加到主题菜单文件的开头。
清单 5. prepend 函数
//在一个现有文件的开头添加一行新内容。
function prepend($file,$string) {
// 有待改进 — 使用数据库提高这个算法的可伸缩性。
// 目前限制为 100 个故事。
if (file_exists($file)) {
$filetext = file($file);
$lines = count($filetext);
} else {
$lines = 0;
}
if ($lines > 100) $lines = 100;
$handle = fopen($file,"w");
fputs ($handle, "$string\n");
for ($i=0; $i<$lines; $i++)
fputs ($handle, $filetext[$i]);
fclose ($handle);
}
如果文件存在,整个正文将存入 $filetext数组中。然后统计出行数。如果文件不存在,则认为它有零行。长度限制为100 行(实际上是 101 行,因为第一行是在开始计数之前添加的)。文件打开,程序首先将当前的字符串写入文件中,然后再将剩余的行(最多100 行)写入文件中。这 100 行以后的任何内容将被丢弃。
这个函数依赖于 PHP
内建的几个重要的文件处理函数。下表说明了每个函数所进行的操作。
函数 说明
file_exists(string) 将字符串作为文件名,如果文件名当前存在,则返回 true。
file(string) 将字符串作为文件名,用一个数组返回文件的正文,每行分别对应一个数组元素。
请注意,行终止字符将位于数组中每行的尾部。
count(array) 返回数组中的元素个数。
fopen(string, mode) 字符串是一个文件名,模式是一个字符串,例如 "w" 表示写入,"r"表示读取。
打开文件,并返回一个句柄。
fputs(handle, string) 将字符串写入指定的输出文件中。必须指定一个文件句柄,
而不能以字符串形式指定文件名。
fclose(handle) 关闭文件,终止输出。
Save
save函数将作者的输入写入一个文件中。因这个函数太长,
在此我不能逐行分析它,但我会强调几个有趣的语句。
$entry = "$storynum^$storytitle^$storyimg^$synopsis";
上面的这个语句将$storynum、$storytitle、$storyimg和 $synopsis 变量连接起来,并用脱字符号作为分隔符。
内嵌的变量替代使它比显式连接更容易且更有趣。
prepend("Main.txt",$entry);
$topicfile = "$subject.txt";
prepend($topicfile,$entry);
$entry变量的值被添加到主故事菜单文件和主题特定的故事菜单文件中。所以,如果变量$subject 等于 "Politics",它就被添加到文件"Politics.txt" 中。

WhatsApp推出了一个新选项,允许用户通过消息传递平台以高分辨率发送照片和视频。继续阅读以了解它是如何完成的。WhatsApp发布了一个更新,允许iPhone和Android用户以高分辨率发送照片和视频,最终解决了该服务的低质量媒体共享限制。该选项称为“高清质量”,意味着用户可以以最小的压缩发送更清晰的照片和视频。例如,在iPhone上捕获的图像现在可以以3024x4032分辨率发送,而不是以前的最大920x1280分辨率,而视频可以以1280×718分辨率发送,而不是848×476分辨率。

在抖音上,用户不仅可以分享自己的生活点滴和才艺,还可以和其他用户互动交流。在这个过程中,有时候我们需要向其他用户发送文件,比如图片、视频等。那么,在抖音上如何发给别人文件呢?一、抖音上如何发给别人文件?1.打开抖音,进入你想要发送文件的聊天界面。2.点击聊天界面中的“+”号,选择“文件”。3.在文件选项中,你可以选择发送图片、视频、音频等文件。选择你想要发送的文件后,点击“发送”。4.等待对方接受你的文件,一旦对方接受,文件就会传输成功。二、抖音上发给别人文件怎么删除?1.打开抖音,进入你发送文

标题:hosts文件删除后如何恢复摘要:hosts文件是操作系统中非常重要的一个文件,用于将域名映射到IP地址。如果不小心将hosts文件删除了,可能会导致上网无法访问特定网站或者其他网络问题。本文将介绍如何在Windows和Mac操作系统中恢复被误删的hosts文件。正文:一、Windows操作系统中恢复hosts文件Windows操作系统中的hosts文

大家知道怎么在腾讯文档中编辑文档吗?不知道没有关系,小编今天介绍如何在腾讯文档中编辑文档的详细图文讲解,希望可以帮助到你哦。腾讯文档中编辑文档的详细图文讲解1、首先直接进入腾讯文档(没有的小伙伴赶紧下载哦!),直接登录(支持QQ、TIM两种登录方式)2、登录后直接点击右上角的加号,直接创建在线文档以及在线表格、新文件夹等!3、然后根据自己的需要输入信息就可以啦!

编辑完文档以后我们会保存文档,为下次编辑修改文档提供方便,有时我们点开编辑好的文档以后能直接进行修改,但有时不知道为什么,怎么点击word文档都没有反应,不执行命令了,word文档不能编辑怎么办呢?大家不用着急,小编帮你解决这个困扰,大家一起来看看操作过程吧。打开Word文档后,编辑文字时会看到页面右侧显示“限制编辑”的提示,如下图所示。 2、需要解除编辑,需要知道设置密码,点击弹出的提示下方的“停止保护”,如下图所示。 3、然后页面弹出“取消保护文档”对话框中输入密码,点击确定,如下图所示

iPhone上的原生“信息”应用可让您轻松编辑已发送的文本。这样,您可以纠正您的错误、标点符号,甚至是自动更正可能已应用于您的文本的错误短语/单词。在这篇文章中,我们将了解如何在iPhone上编辑消息。如何在iPhone上编辑消息必需:运行iOS16或更高版本的iPhone。您只能在“消息”应用程序上编辑iMessage文本,并且只能在发送原始文本后的15分钟内编辑。不支持非iMessage信息文本,因此无法检索或编辑它们。在iPhone上启动消息应用程序。在“信息”中,选择要从中编辑消息的对话

Apple允许您随时重新排列主屏幕页面并自由删除它们,以快速更改主屏幕。这样,您可以轻松隐藏多个应用程序和小部件,无需逐个拖动并删除。在本文中,我们将解释如何编辑iPhone主屏幕上的页面。CONTENTS[SHOW]显示如何在iPhone上编辑主屏幕页面您可以编辑主屏幕以重新排列页面、隐藏/取消隐藏主屏幕中的某些页面以及完全删除页面。要开始编辑iPhone主屏幕,请长按主屏幕上的空白区域。当您的主屏幕进入抖动模式时,点击屏幕底部的一行点。您现在应该看到所有主屏幕都以网格格式显示。选项1:在主屏

html2pdf是一个JavaScript包,允许开发人员将html转换为canvas、pdf、图像等。它将html作为参数并将其添加到pdf或所需文档中。此外,它还允许用户在添加html内容后下载该文档。在这里,我们将访问表单并使用html2pdfnpm包将其添加到pdf中。我们将看到不同的示例,以向pdf添加表单数据。语法用户可以按照以下语法将html表单数据作为文本并将其发送到html2pdf。varelement=document.getElementById('form');html2


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver CS6
視覺化網頁開發工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),