这是我用来获取不同类别名称结果的代码。这里,如果类别名称有空格,则结果不会显示,而没有空格的名称将显示。
<ul>
<li><a href="<?php echo base_url();?>clients">View All </a></li>
<?php foreach($clientdropdown as $row){?>
<li class="<?php if($active_mn== $row->id) echo 'active'; ?>">
<a href="<?php echo base_url();?>client/<?php echo $row->category_name;?>">
<?php echo $row->category_name;?>
<span></span>
</a>
</li>
<?php }?>
</ul>
我对使用replace()
避免空格的位置感到困惑。
我已经更改了我的代码,请参阅
答案 0 :(得分:1)
在您编辑的代码中查看了您要执行的操作后,问题不在于$row->category_name
无法获取。
这与URL中的空间可能没有编码,因此页面不会正确重定向。
URL编码用“%”后跟两个十六进制数字替换不安全的ASCII字符 空格是不安全的ASCII字符 网址不能包含空格。 URL编码通常用加号(+)或%20替换空格。
urlencode()
将空间转换为+
rawurlencode()
将参数转换为十六进制代码,空间为%20
<ul>
<li><a href="<?php echo base_url();?>clients">View All </a></li>
<?php foreach($clientdropdown as $row){?>
<li class="<?php if($active_mn== $row->id) echo 'active'; ?>">
<a href="<?php echo base_url();?>client/<?php echo rawurlencode($row->category_name);?>">
<?php echo $row->category_name;?>
<span></span>
</a>
</li>
<?php }?>
</ul>
<强>更新强>
codeigniter在创建名称包含空格的目录时将空间转换为下划线,因此访问使用类别名称“Hello World”创建的目录的正确路径应为“Hello_World”,对于此特定情况,str_replace(" ", "_", $row->category_name)
就是所有需要。