PHP Wordpress如何将空格替换为数组中的连字符

时间:2018-12-19 13:22:22

标签: php arrays wordpress

我需要你的帮助

我在用户meta中有一个数组式渡假胜地

array(1) {
  [0]=>
  array(3) {
    [0]=>
    string(19) "Courchevel"
    [1]=>
    string(21) "Kitzbuhel"
    [2]=>
    string(14) "St Moritz"
  }
}

我用foreach

if (! empty($resorts)) {
    foreach ($resorts[0] as $value) {
        echo '<a href="' . esc_url(home_url( $value )) . ' class="link">' . $value . '</a>';
    }
}

但是href中的$ value带有空格,例如localhost / St Moritz

如何用href $ value中的连字符替换所有空格?

谢谢)

3 个答案:

答案 0 :(得分:1)

尝试一下

if (! empty($resorts)) {
    foreach ($resorts[0] as $value) {
        echo '<a href="' . esc_url(home_url( sanitize_title($value))) . ' class="link">' . $value . '</a>';
    }
}
  

参考-https://codex.wordpress.org/Function_Reference/sanitize_title

答案 1 :(得分:1)

if (! empty($resorts)) {
    foreach ($resorts[0] as $value) {
        $value_for_text = $value;
        $value_for_url = $value;

        $url = explode(" ",$value);
        $final_url = "";
        if(is_array()){

            foreach($url as $url_text){
                $final_url .= $url_text;
            }
            echo '<a href="' . esc_url(home_url( $final_url )) . ' class="link">' . $value_for_text . '</a>';
        }
        else{
            echo '<a href="' . esc_url(home_url( $value )) . ' class="link">' . $value_for_text . '</a>';
        }        
    }
}

尝试一下。 我希望这项工作对您有用。谢谢

答案 2 :(得分:0)

问题通过功能str_replace解决

if (! empty($resorts)) {
    foreach ($resorts[0] as $value) {

        $spaces= array(" ");
        $value_url = str_replace($spaces, "-", $value);

        echo '<a href="' . esc_url(home_url( $value_url )) . ' class="link">' . $value . '</a>';
    }
}

谢谢!