View All id) ec-6ren">
gpt4 book ai didi

php - 不会获取包含空格的结果

转载 作者:行者123 更新时间:2023-11-29 11:28:48 25 4
gpt4 key购买 nike

这是我用来获取不同类别名称结果的代码。这里,如果类别名称有空格,则不会显示结果,而没有空格的名称将显示。

这是我的代码:

<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() 来避免空格有点困惑。

我更改了我的代码,请查看

最佳答案

查看了您在编辑的代码中尝试执行的操作后,您遇到的问题并不是 $row->category_name 无法获取。
这是因为 URL 中的空格可能没有被编码,因此页面无法正确重定向。

URL 编码将不安全的 ASCII 字符替换为“%”后跟两个十六进制数字。
空格是不安全的 ASCII 字符。
URL 不能包含空格。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) 就足够了。

关于php - 不会获取包含空格的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37759985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com