我的网站的<head>部分内的PHP元生成代码不会在每个元标记之间添加新行

web*_*ers -2 html php

我在里面有以下php代码 我网站的一部分.

这是一个非常简单的代码,它添加了元名称机器人,wmt工具验证元和rss元.

它工作正常,但有一点:

当我使用IE或Fireforx查看我的页面源时,我看不到元之间的新行.它们在一行上一个接一个地显示.

如何添加新行?有任何想法吗?如果我让他们这样,会有任何问题吗?

这是代码:

if((is_home() && $currentpage == 1) || (is_single() && $title != 'Online' && $title != 'Cam') || (is_category() && $robots == 'y')){
        echo '<meta name="robots" content="index,follow"/>';   
    } else {
        echo '<meta name="robots" content="noindex,follow"/>';
    } 
    if(get_option('enable_wmt') == 'y'){
        echo '<meta name="google-site-verification" content="'.get_option('wmt').'"/>';
    }
    if (is_home() && $currentpage == 1){
        echo '<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="'.$site_current.'/feed/"/>';
    }
Run Code Online (Sandbox Code Playgroud)

ark*_*cha 6

嗯,实际上原因很简单,你没有指定任何换行符.如果您希望生成换行符,则必须输出换行符,就像其他所有内容一样.

我通常使用这种语法,因为它不会使代码不可读:

if((is_home() && $currentpage == 1) || (is_single() && $title != 'Online' && $title != 'Cam') || (is_category() && $robots == 'y')){
        echo '<meta name="robots" content="index,follow"/>'."\n";   
    } else {
        echo '<meta name="robots" content="noindex,follow"/>'."\n";
    } 
    if(get_option('enable_wmt') == 'y'){
        echo '<meta name="google-site-verification" content="'.get_option('wmt').'"/>'."\n";
    }
    if (is_home() && $currentpage == 1){
        echo '<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="'.$site_current.'/feed/"/>'."\n";
    }
Run Code Online (Sandbox Code Playgroud)

说明:序列\n是单个换行符的描述.无法直接输入角色有两个原因:

  1. 它是一个空白,所以很难处理编辑和

  2. 'normal'linebreak在语言语法中有特殊含义.

在php中使用该换行符时,必须用双引号(")括起来.只有当包含在双引号中时,这些特殊字符才会被php解释.如果使用单引号('),则这些序列仍未解释.这是一个偶然派上用场的差异......在这种情况下,它有助于我们坚持使用简单易读的方式来交换字符串以输出到echo命令.我们使用冒号(.)来连接两个字符串并使用双引号来解释特殊字符序列.

为了完整起见,另一个注意事项:在不同情况下如何指定换行符的方式有所不同.最值得注意的是,这是处理不同和不同的操作系统.经典的unix系统(因此也是Linux)使用上面引用的字符(\n如何以十六进制表示法表示0x10),MS-Windows使用两个字符来指定单个换行符:(\n\r十六进制0x10 0x13,或换行符和回车符).较旧的MacOS系统再次使用了不同的东西,尽管当前的MacOSX系统也是基于unix的.由于互联网传统上是unix land(已经在类似unix的系统下开发和增强),因此在互联网技术的许多部分中都可以找到并预期unix行为.