我有一个包含链接列表的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专家可以帮助我。 :(
答案 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代码中
你应该在=
<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(' ' => ''));