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

时间:2013-04-21 09:31:33

标签: php url

我的网页网址就是这样的

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

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

的基础上检索网页数据

但标题是必须在任何其他事情之前立即显示的一些事情。所以,如果我从数据库中检索标题,然后将其显示在页面顶部,我认为这不是一种有效的方法。显示页面标题的标准方法是什么。

  

大多数网站是否从数据库中检索标题?

OR

  

大多数网站都会在网址中附加标题吗?

OR

  

还有其他方法吗?

8 个答案:

答案 0 :(得分:2)

大多数网站是否从数据库中检索标题? :是的

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

标题:这是此页面的URL文本
url:this-is-the-url-text-of-page

有两种方法可以做到这一点。您可以将标题 AND 存储在数据库中,或者从标题中“逐步”构建网址。第一种解决方案更有效。

答案 1 :(得分:1)

一般来说,根据我的经验,有几个因素需要考虑:

  1. 实际页面标题可能包含在友好网址中丢失的信息 - 例如。标点符号或额外的单词。你真的想要一个应该说“我无法访问互联网”的标题,实际上是说“我无法访问互联网”。
  2. 要生成页面,我通常会期望从数据库中获取更多信息。也许是文章内容,关键词,标题图片等。因此无论如何数据库查询都会存在。
  3. 友好网址的主要目的是来自搜索引擎优化。当您还传递每个页面的ID时,请在数据库中查找ID。只要数据库表主键也在id上,这将有助于提高查找速度。
  4. 希望这有助于回答您的一些问题。

答案 2 :(得分:1)

  

然后将其显示在页面顶部,我认为这不是一种有效的方式

这取决于。标题嵌入在顶部附近的HTML中。虽然有些方法可以在以后注入,但实际上通常不值得这样做。 PHP / HTTP表现最佳when output buffering is enabled - 内容以一次突发的形式发送到浏览器 - 因此'高效'的解决方案是在浏览器完全内容可用之前不向浏览器发送任何内容。如果您的脚本非常慢(生成时间超过4秒),那么,根据DOM的构造方式,浏览器可能会在HTML不完整时开始呈现 - 在这种情况下,强制分块编码可以改进感知表现 - 但这很复杂且难以实施。

此外,响应中发送的第一位信息是请求是否按预期运行 - 用户是否经过身份验证?处理脚本有什么问题吗?内容是否已经过验证,或者您是否需要将浏览器重定向回上一页?在身份验证转换中,您还需要在处理请求后删除Cookie(即修改标头)。在您确定知道后续内容之前,您不应该提供状态 - 检查数据库是否正常工作是其中的一个重要部分。如果您过早开始生成输出,那么您将在响应标头中返回不正确的数据,并减少处理错误条件的选项。

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

答案 3 :(得分:0)

你的意思是在构建页面时获得标题 - >然后从db的单独字段中获取它。分别存储友好的URL和标题。

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


不再相关:

我假设:您是否正在尝试动态构建一组链接(db中的页面)(您可能随时都有新页面或旧页面已删除),因此只需要获取标题?

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

甚至可以在管理部分中有一个链接随时运行

请提供更多背景信息。没有标准的解决方案。或者更确切地说,有3-4种情况取决于具体情况。

答案 4 :(得分:0)

页面的标题在html标题中定义如下:

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

这可以是静态的或动态的,具体取决于页面以及设计者如何构建。不确定如果你试图引用数据库是什么问题,因为我们没有看到整个混合。

你想要完成什么?

答案 5 :(得分:0)

建议使用数据库检索页面其余部分的标题。为什么?那么检查id不再是检查var中包含的唯一数字,但是另一方面,字符串具有可以包含但不能包含的范围,这使得为它创建规则变得更加困难打开安全问题。

换句话说,只需简单地在您的查询中添加联接,就可以了。

第二如果您使用mod_rewrite创建这些网址,那么常规的$ _GET变量仍然可用。

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

但最后正如我之前所说的数据库建议,它比全局var方法更安全,并且它比 url string 方法上的“运行函数”更可靠。

答案 6 :(得分:0)

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

答案 7 :(得分:0)

此功能可能比爆炸更快,尤其是对于较长的网址:

basename($url);