使用PHP回显没有空格的字符串

时间:2014-08-06 11:42:23

标签: php

我有一个包含链接列表的foreach循环,我正在尝试删除字符串中的空格,因为我将它用作href。到目前为止,我成功删除了空格,但我写的代码在字符串之前创建了一个宽阔的空格。这是我的foreach循环

 <ul class="list grid effect-6" id="grid">
  <?php foreach ($ppmtenants as $ppmtenant): ?> 
         <li><span class="tenant"><a href="<?php echo $this->getURL() ?>catalogsearch/advanced/result/?tenants=<?php echo $ppmtenant['value'] ?>"><?php echo $ppmtenant['label'] ?></a><a href="<?php echo $this->getURL() ?>?___store=
    <?php 
    $ppmtenantnospace = preg_replace('/\s+/','',$ppmtenant['label']);
    echo strtolower($ppmtenantnospace); 
    ?>"></a></span></li>
<?php endforeach; ?>

    </ul>

以下是我删除空格的方法。我用了preg_replace。现在,空格已经消失,但它在字符串之前有一个宽阔的空间。

 <?php 
    $ppmtenantnospace = preg_replace('/\s+/','',$ppmtenant['label']);
    echo strtolower($ppmtenantnospace); 
    ?>

此处的实例:http://powerplantv2.jehzlau.net/brands。 屏幕截图:http://i.imgur.com/wpQwxso.png

正如您所看到的,如果您将鼠标悬停在图像上,那么?之后会有一个不需要的空间。应该没有空间,以便我的永久链接可以工作。如果那个空间消失,我的问题就会解决。但我不知道如何让它消失。我希望这里的php专家可以帮助我。 :(

5 个答案:

答案 0 :(得分:3)

问题来自你的HTML中的空格。要修复,只需将$ppmtenantnospace的变量声明移到li输出上方,然后在正确的位置回显:

<ul class="list grid effect-6" id="grid">
    <?php foreach ($ppmtenants as $ppmtenant): 

        $ppmtenantnospace = preg_replace('/\s+/','',$ppmtenant['label']);?>

        <li><span class="tenant"><a href="<?php echo $this->getURL() ?>catalogsearch/advanced/result/?tenants=<?php echo $ppmtenant['value'] ?>"><?php echo $ppmtenant['label'] ?></a><a href="<?php echo $this->getURL() ?>?___store=<?php echo $ppmtenantnospace;?>"></a></span></li>

    <?php endforeach; ?>

</ul>

答案 1 :(得分:2)

空格实际上在您的HTML代码中 你应该在=

之后立即打开php标签
<ul class="list grid effect-6" id="grid">
  <?php foreach ($ppmtenants as $ppmtenant): ?> 
         <li><span class="tenant"><a href="<?php echo $this->getURL() ?>catalogsearch/advanced/result/?tenants=<?php echo $ppmtenant['value'] ?>"><?php echo $ppmtenant['label'] ?></a><a href="<?php echo $this->getURL() ?>?___store=<?php 
    $ppmtenantnospace = preg_replace('/\s+/','',$ppmtenant['label']);
    echo strtolower($ppmtenantnospace); 
    ?>"></a></span></li>
<?php endforeach; ?>

    </ul>

答案 2 :(得分:1)

尝试在代码中的换行符之前打开PHP标记

<ul class="list grid effect-6" id="grid">
  <?php foreach ($ppmtenants as $ppmtenant): ?> 
     <li><span class="tenant"><a href="<?php echo $this->getURL() ?>catalogsearch/advanced/result/?tenants=<?php echo $ppmtenant['value'] ?>"><?php echo $ppmtenant['label'] ?></a><a href="<?php echo $this->getURL() ?>?___store=<?php 

     $ppmtenantnospace = preg_replace('/\s+/','',$ppmtenant['label']);
     echo strtolower($ppmtenantnospace); 
     ?>"></a></span></li>
     <?php endforeach; ?>
</ul>

答案 3 :(得分:1)

您是否尝试将<?php贴在?___store=上?因为<?php之前的4个空格不会被忽略,因为它们不是PHP代码而是HTML输出

答案 4 :(得分:0)

$spaceless_string = strtr($stringwithspaces, array(' ' => ''));