不会获取包含 space 的结果

Results that include space don't get fetched

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

这是我的代码:

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

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

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

URL 编码将不安全的 ASCII 字符替换为“%”后跟两个十六进制数字。
Space 是不安全的 ASCII 字符。
URLs 不能包含 spaces。 URL 编码通常用加号 (+) 或 %20 替换 space。

urlencode() 将 space 翻译成 +
rawurlencode() 将参数转换为十六进制代码,即 %20 for space

<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 在创建名称包含 space 的目录时将 space 转换为下划线,因此访问使用类别名称 "Hello World" 创建的目录的正确路径应该是 "Hello_World",为此特殊情况 str_replace(" ", "_", $row->category_name) 就足够了。