【问题标题】:How can we replace all space with dash using Php?我们如何使用 Php 用破折号替换所有空间?
【发布时间】:2016-12-24 06:42:17
【问题描述】:

如何在 Php 中用破折号 '-' 替换所有空格?

到目前为止,我已经尝试过了。

     $post_name = $row['post_name'];
     $post_name = preg_replace('/\_/', '-', $post_name);
     $post_name=  preg_replace("/[^A-Za-z 0-9?!\-]/",'',$post_name);

现在的问题是,它有时不会替换某些字符串中的空格,如果有多个空格,它会给出多个破折号,但我只需要一个破折号。我该如何解决这个问题?

【问题讨论】:

    标签: php


    【解决方案1】:

    试试这个...

    echo preg_replace('/\s+/', '-', "Vaghela Nikhil");
    

    echo str_replace(" ","-","Vaghela Nikhil");
    

    输出:

    Vaghela-Nikhil
    

    demo...

    【讨论】:

      【解决方案2】:
      <?php
      
      function myfunc($post_name) {
         return preg_replace('/[\s_]+/', '-', $post_name);
      }
      
      $post_name = 'My document a_b';
      echo myfunc($post_name);
      
      ?>
      

      【讨论】:

        【解决方案3】:

        请改用 str_replace。 在其document 中,它说 用替换字符串替换所有出现的搜索字符串。哪个对你有用。

        文件里也有说 “如果你不需要花哨的替换规则(比如正则表达式),你应该总是使用这个函数而不是 preg_replace()。” 您的需求看起来不需要“花哨的替换规则”。 所以你应该这样做

        $post_name = str_replace(' ', '-', $post_name);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-07-05
          • 1970-01-01
          • 1970-01-01
          • 2022-07-06
          • 2011-08-28
          相关资源
          最近更新 更多