PHP-一种“清理”字符串的函数

如何解决PHP-一种“清理”字符串的函数

| 有没有可用的PHP函数用破折号替换字符串中的空格和下划线? 喜欢:
Some Word

Some_Word

Some___Word

Some     Word

Some ) # $ ^ Word
=>
some-word
基本上,经过清理的字符串应仅包含
a-z
个字符,数字(
0-9
)和破折号(.4ѭ)。     

解决方法

        这应该产生期望的结果:
$someword = strtolower(preg_replace(\"/[^a-z]+/i\",\"-\",$theword));
    ,        
<?php
function sanitize($s) {
    // This RegEx removes any group of non-alphanumeric or dash
    // character and replaces it/them with a dash
    return strtolower(preg_replace(\'/[^a-z0-9-]+/i\',\'-\',$s));
}

echo sanitize(\'Some Word\') . \"\\n\";
echo sanitize(\'Some_Word\') . \"\\n\";
echo sanitize(\'Some___Word\') . \"\\n\";
echo sanitize(\'Some     Word\') . \"\\n\";
echo sanitize(\'Some ) # $ ^ Word\') . \"\\n\";
输出:
Some-Word
Some-Word
Some-Word
Some-Word
Some-Word
    ,        您可能想尝试
preg_replace
: http://php.net/manual/zh/function.preg-replace.php 此页面上的示例:
<?php
$string = \'April 15,2003\';
$pattern = \'/(\\w+) (\\d+),(\\d+)/i\';
$replacement = \'${1}1,$3\';
echo preg_replace($pattern,$replacement,$string);
//April1,2003
?>
您可能想尝试搜索\“使用PHP搜索友好的URL \”,因为有很多文档,例如:
function friendlyURL($string){
$string = preg_replace(\"`\\[.*\\]`U\",\"\",$string);
$string = preg_replace(\'`&(amp;)?#?[a-z0-9]+;`i\',$string);
$string = htmlentities($string,ENT_COMPAT,\'utf-8\');
$string = preg_replace( \"`&([a-z])(acute|uml|circ|grave|ring|cedil|slash|tilde|caron|lig|quot|rsquo);`i\",\"\\\\1\",$string );
$string = preg_replace( array(\"`[^a-z0-9]`i\",\"`[-]+`\"),$string);
return strtolower(trim($string,\'-\'));
}
和用法:
$myFriendlyURL = friendlyURL(\"Barca rejects FIFA statement on Olympics row\");
echo $myFriendlyURL; // will echo barca-rejects-fifa-statement-on-olympics-row
来源:http://htmlblog.net/seo-friendly-url-in-php/     ,        不确定@Dagon为什么选择留下评论而不是答案,但这是他答案的扩展。 php \的preg_replace函数允许您用其他任何东西替换任何东西。 这是您的情况的示例:
$input = \"a word 435 (*^(*& HaHa\";

$dashesOnly = preg_replace(\"#[^-a-zA-Z0-9]+#\",$input);

print $dashesOnly; // prints a-word-435-HaHa;
    ,        您可以考虑在正则表达式的帮助下编写这段代码。 但是我看不到任何可用的功能来帮助您直接将\“ \”替换为\“-\”     ,        我在网络上找到了一些有趣的解决方案。.请注意,这些都不是我的代码。只是复制到此处,希望可以帮助您为自己的应用程序构建自定义功能。 这是从Chyrp复制的。应该可以很好地满足您的需求!
/**
 * Function: sanitize
 * Returns a sanitized string,typically for URLs.
 *
 * Parameters:
 *     $string - The string to sanitize.
 *     $force_lowercase - Force the string to lowercase?
 *     $anal - If set to *true*,will remove all non-alphanumeric characters.
 */
function sanitize($string,$force_lowercase = true,$anal = false) {
$strip = array(\"~\",\"`\",\"!\",\"@\",\"#\",\"$\",\"%\",\"^\",\"&\",\"*\",\"(\",\")\",\"_\",\"=\",\"+\",\"[\",\"{\",\"]\",\"}\",\"\\\\\",\"|\",\";\",\":\",\"\\\"\",\"\'\",\"&#8216;\",\"&#8217;\",\"&#8220;\",\"&#8221;\",\"&#8211;\",\"&#8212;\",\"—\",\"–\",\",\"<\",\".\",\">\",\"/\",\"?\");
$clean = trim(str_replace($strip,strip_tags($string)));
$clean = preg_replace(\'/\\s+/\',$clean);
$clean = ($anal) ? preg_replace(\"/[^a-zA-Z0-9]/\",$clean) : $clean ;
return ($force_lowercase) ?
    (function_exists(\'mb_strtolower\')) ?
        mb_strtolower($clean,\'UTF-8\') :
        strtolower($clean) :
    $clean;
}
编辑: 我发现更简单的功能!只需几行代码,就可以不言自明了。
function slug($z){
    $z = strtolower($z);
    $z = preg_replace(\'/[^a-z0-9 -]+/\',\'\',$z);
    $z = str_replace(\' \',$z);
    return trim($z,\'-\');
}
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 &lt;select id=&quot;xxx&quot;&gt; SELECT di.id, di.name, di.work_type, di.updated... &lt;where&gt; &lt;if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 &lt;property name=&quot;dynamic.classpath&quot; value=&quot;tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-