PHP - 字符串 - 处理正反斜线 及 处理中文全角空格

本文介绍了一种处理跨平台路径兼容性的方法,通过将Windows和Linux路径统一转换为正斜杠(/),确保代码在不同操作系统间无缝运行。同时,探讨了如何有效清除字符串中的中文全角空格,提供了多种实用解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.应用场景

用于处理 '字符串 处理正反斜线', 如路径, 命令空间... 

2.学习/操作

1. 文档阅读

Windows 与 Linux 异同_穿素白衫的中少年的博客-CSDN博客_linux与windows的相同点

2. 整理输出

1. 开发中经常遇到路径相关的问题, 特别是处理转换正反斜线[win/*nix]/分隔符.

2. 也会遇到要处理中文全角空格的问题

2.1 处理正反斜线 

解决办法

写个公共函数[全局助手函数]

core/common/functions.php

if ( ! function_exists('serializePath'))

{

    /**

     * Find and replace a string in a string.

     *

     * @param  string  $path

     * @param  string  $seatch

     * @param  string  $replace

     * @return string

     */

    function serializePath($path, $seatch = '\\', $replace = '/'){

    if(!$path){

        return false;

    }

    return str_replace($seatch, $replace, $path);

    }

}

调用上面的函数

$path = serializePath($path);

2.2 处理中文全角空格

使用trim()没办法去除, 汉字字符串中的全角空格。

<?php

$str = ' zxcvgsdg gfsgfs sdfsfg ';

var_dump($str);

输出结果:

string(30) " zxcvgsdg gfsgfs    sdfsfg    "

推荐解决办法:

<?php

// 方式A:
$string = ' 测试 ';
$ret1 = trim(trim($string," "));
var_dump($ret1);

// 方式B:
$string = ' 测试 ';
$ret2 = trim(str_replace(' ', '  ', $string));
var_dump($ret2);

/**
 * [filterBlank 去掉字符串两边空格]
 */
function filterBlank( $str ) 
{
    mb_regex_encoding('utf-8');
    $str = mb_ereg_replace(' ', '', $str);
    return trim($str);
}
$str = 'jkgsdgsgsdgs gsdg gsd';
echo filterBlank($str);

输出结果:

zxcvgsdggfsgfssdfsfgstring(6) "测试"
string(6) "测试"
jkgsdgsgsdgs gsdg gsd%  

扩展

<?php

$str = ' zxcvgsdg gfsgfs    sdfsfg    ';
var_dump($str);
 

echo test($str);
function test($str)
{
         $search = array(" "," ");
         $replace = array("","");
         return str_replace($search, $replace, $str);
}

后续补充

...

3.问题/补充

1. windows 与 *nix下的目录分隔符是不一样的, 但是可以混用.

如下: 

window 10: 可以正常定位到文件. 使用php 函数 is_file($path) 结果为true;

G:\phpstudy_pro\WWW\front_backend\imooc/core/route.php

备注:

一个路径,  在 Windows 中,斜线(/)和反斜线(\)都可以用作目录分隔符。在其它环境下是斜线(/)[即Linux/Unix]。

故: 均处理为分隔符为 / 的路径形式

...

4.参考

参见文档阅读

后续补充

...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值