加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

如何在PHP中检测字符串中的分隔符?

发布时间:2020-12-13 22:01:22 所属栏目:PHP教程 来源:网络整理
导读:我很好奇,如果你有一个字符串,你会如何检测分隔符? 我们知道php可以使用explode()分割字符串,这需要一个分隔符参数. 但是在将分隔符发送到爆炸函数之前检测分隔符的方法呢? 现在我只是将字符串输出给用户,然后输入分隔符.这很好 – 但我正在寻找模式识别的
我很好奇,如果你有一个字符串,你会如何检测分隔符?

我们知道php可以使用explode()分割字符串,这需要一个分隔符参数.

但是在将分隔符发送到爆炸函数之前检测分隔符的方法呢?

现在我只是将字符串输出给用户,然后输入分隔符.这很好 – 但我正在寻找模式识别的应用程序.

我应该在字符串中查找这种类型的模式识别的正则表达式吗?

编辑:我最初没有指定可能有一组预期的分隔符.可能在CSV中使用的任何分隔符.所以从技术上讲,任何人都可以使用任何字符来分隔CSV文件,但更有可能使用以下字符之一:逗号,分号,竖线和空格.

编辑2:这是我为“确定的分隔符”提出的可行解决方案.

$get_images = "86236058.jpg 86236134.jpg 86236134.jpg";

    //Detection of delimiter of image filenames.
        $probable_delimiters = array(","," ","|",";");

        $delimiter_count_array = array(); 

        foreach ($probable_delimiters as $probable_delimiter) {

            $probable_delimiter_count = substr_count($get_images,$probable_delimiter);
            $delimiter_count_array[$probable_delimiter] = $probable_delimiter_count;

        }

        $max_value = max($delimiter_count_array);
        $determined_delimiter_array = array_keys($delimiter_count_array,max($delimiter_count_array));

        while( $element = each( $determined_delimiter_array ) ){
        $determined_delimiter_count = $element['key'];
        $determined_delimiter = $element['value'];
        }

        $images = explode("{$determined_delimiter}",$get_images);

解决方法

确定您认为可能的分隔符(如,和|)以及每次搜索它们在字符串(substr_count)中出现的频率.然后选择具有最多出??现次数的那个作为分隔符并爆炸.

即使这可能不是故障安全的,但在大多数情况下都应该有效;)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读