获得页面标题的标准方法是什么?


What is the standard way to get the title of the page

我的网页网址是这样的

url = http://www.example.com/2223/this-is-the-url-text-of-page

在上面的URL中,2223是id, this-is-the-url-text-of-page是存储在数据库中不同字段中的静态文本。我在id的基础上检索网页数据。

但是标题必须在其他内容之前显示。所以,如果我从数据库检索标题,然后显示在页面的顶部,我认为这不会是一个有效的方式。显示页面标题的标准方式是什么?

大多数站点从数据库检索标题吗?

大多数网站在URL中附加标题吗?

还有其他方法吗?

大多数站点从数据库检索标题吗?: YES

大多数网站在URL中附加标题吗?:网页的标题和网址不是一回事。

title:这是本页的URL文本
Url: this-is-the-url-text-of-page

有两种方法可以做到这一点。您可以在数据库中存储标题 url,或者从标题以编程方式"构造"url。第一个解决方案更有效率。

根据我的经验,通常有几个因素需要考虑:

  1. 实际的页面标题可能包含在友好url中丢失的信息-例如。标点符号或多余的单词。你真的想要一个应该说"我不能上网"的标题,实际上说的是"我不能上网"吗?
  2. 要生成页面,我通常期望从数据库中也需要进一步的信息。也许文章内容,关键词,标题图像等。因此,数据库查询无论如何都会在那里。
  3. 友好url的主要目的是来自搜索引擎优化。由于还传递了每个页面的id,因此在数据库中查找该id。只要数据库表的主键也在id上,这将有助于提高查找速度。

希望这有助于回答你的一些问题。

,然后显示在页面的顶部,我认为这不是一个有效的方法

这得看情况。标题嵌入在HTML中,靠近顶部。虽然有一些方法可以稍后注入,但在实践中通常不值得这样做。PHP/HTTP在启用输出缓冲时表现最佳-并且内容在单个突发中发送到浏览器-因此"高效"的解决方案是在完整内容可用之前不向浏览器发送任何内容。如果您的脚本非常慢(生成时间超过4秒),那么根据DOM的构造方式,浏览器可能会在HTML不完整时开始呈现——在这种情况下,强制分块编码可以提高感知到的性能——但这是复杂且难以实现的。

此外,响应中发送的第一个信息是请求是否按照预期行为——用户是否经过身份验证?在处理脚本时出了什么问题吗?内容验证成功了吗?还是需要将浏览器重定向到上一页?在身份验证转换中,您还需要在处理请求后删除cookie(即修改报头)。您不应该提供状态,直到您有理由确信您知道答案将是什么—检查数据库是否正常工作是其中的一个重要部分。如果你过早地开始输出,那么你就会在响应头中返回不正确的数据,并减少处理错误条件的选项。

因此,从性能和功能的角度来看,延迟生成输出直到您知道输出将是什么才更有意义。

页面标题在HTML header中定义如下:

<title>php - What is the standard way to get the title of the page - Stack Overflow</title>

这可以是静态的也可以是动态的,这取决于页面和设计师如何构建它。不知道问题是什么,如果你试图引用一个数据库,因为有一个完整的组合,我们没有看到在那里。

你想完成什么?

从数据库中获取标题。URL应该简短,切中要害,易于输入。标题应该是描述性的。这意味着它可以更长,标点符号和更长的

建议使用数据库检索页面其余部分的标题。为什么?好吧,检查id不再是检查var中是否只包含数字,但另一方面,字符串可以包含和不能包含的内容范围很广,这使得为它创建规则变得更加困难,这反过来又会引发安全问题。

换句话说,只需在查询中添加一个join,就可以了。

第二个如果你使用mod_rewrite来创建这些url的常规$_GET变量仍然可用。

第三如果没有,可以使用end(explode('/', $url));之类的函数。

但在最后,正如我之前所说的数据库是推荐的,它比全局变量方法更安全,它比url字符串方法上的"运行函数"更可靠。

这个函数可能比爆炸更快,特别是对于较长的url:

basename($url);

你的意思是在构建页面时获得标题->然后从数据库的单独字段获得它。单独存储友好的url和标题。

如果用户没有在URL中输入标题部分,则使用id重定向到正确的页面。


不再相关:

我假设:你是否试图动态地建立一组链接,在数据库中的页面(你可能在任何时候都有新的页面或旧的页面被删除),所以只需要得到标题?

对于这个->,您可以运行一个cron作业20分钟并创建一个静态包含页面。写入一个新页面,完成后,删除主包含'links.html'并将新页面重命名为此。

甚至可以在admin部分有一个链接来随时运行这个

请给出更多的上下文。没有标准的解决方案。或者更确切地说,根据情况有3-4个。