用PHP修剪领先的空白区域?

时间:2009-07-09 01:02:40

标签: php whitespace trim

Wordpress PHP函数中似乎存在一个错误,它在<?php echo wp_title(''); ?>生成的页面标题前面留下了空白。我已经通过WordPress文档和论坛上没有任何运气了。< / p>

我正在以<body id="<?php echo wp_title(''); ?>">的方式使用它,以便生成一个带有页面标题ID的HTML正文标记。

所以我需要做的是剥去空白区域,以便body标签看起来像<body id="mypage">而不是<body id=" mypage">

额外的空格会杀死我正在尝试使用的CSS来突出显示活动页面的菜单项。当我手动添加没有空格的正确身体标签时,我的CSS就可以了。

那我怎么剥去白色空间呢?谢谢,马克


史诗的第二部分

约翰,一个十六进制转储是个好主意;它将白色空间显示为两个“20”空间。但是所有剥离领先空间和空白空间的解决方案都没有。

而且,<?php ob_start(); $title = wp_title(''); ob_end_clean(); echo $title; ?>

给了我< body id ="">

<?php ob_start(); $title = wp_title(''); echo $title; ?>

给了我< body id =" mypage">

拼图。问题的根源在于wp_title具有可选的页面标题前导字符 - 看起来像V形符号 - 当选项为false时应该被删除,并且它们是,但是空白区域被转储。

有核选择吗?


是的,以前都试过了;他们仍然返回两个领先的空间...... arrgg

6 个答案:

答案 0 :(得分:37)

  1. 从标题的左端删除所有空格:

    <?php echo ltrim(wp_title('')); ?>
    
  2. 从两端剥去所有空格:

    <?php echo trim(wp_title('')); ?>
    
  3. 从标题左端删除所有空格:

    <?php echo ltrim(wp_title(''), ' '); ?>
    
  4. 删除第一个空格,即使它不是第一个字符:

    <?php echo str_replace(' ', '', wp_title(''), 1); ?>
    
  5. 在开头只删除一个空格(不是换行符,而不是制表符):

    <?php echo preg_replace('/^ /', '', wp_title('')); ?>
    
  6. 剥去第一个角色,无论它是什么:

    <?php echo substr(wp_title(''), 1); ?>
    
  7. 更新

    在Wordpress documentation on wp_title中,wp_title似乎显示标题本身,除非您为第二个参数传递false,在这种情况下它会返回它。所以试试:

    <?php echo trim(wp_title('', false)); ?>
    

答案 1 :(得分:10)

答案 2 :(得分:1)

ltrim($str)

答案 3 :(得分:1)

在这里提出一些变化:trim

 <body id="<?=trim(wp_title('', false));?>">

答案 4 :(得分:1)

感谢您提供此信息!我在同一条船上,因为我需要根据页面标题为CSS目的生成页面ID,并且上述解决方案工作得非常好。

我最终遇到了一个额外障碍,因为有些页面的标题带有嵌入空格,所以我最终编码了这个:

<?php echo str_replace(' ','-',trim(wp_title('',false))); ?>

答案 5 :(得分:0)

将此添加到您的functions.php

add_filter('wp_title', create_function('$a, $b','return str_replace(" $b ","",$a);'), 10, 2);

应该像魅力一样工作