编辑数组的项目Php

时间:2018-12-19 05:14:44

标签: php url conditional

我正在尝试编辑数组的项目。我在下面有$ links数组。

array(6) {
  [0]=>
  string(22) "http://sumiyoshi22.jp/"
  [1]=>
  string(27) "https://www.finecity138.jp/"
  [2]=>
  string(25) "http://www.hirakata-p.jp/"
  [3]=>
  string(24) "http://www.honki-pj.com/"
  [4]=>
  string(55) "http://nishitetsu-sumai.com/centermarkstower/index.html"
  [5]=>
  string(29) "http://senri100.jp/index.html"
}

并尝试使其如下所示:

array(6) {
  [0]=>
  string(29) "http://sumiyoshi22.jp/outline"
  [1]=>
  string(39) "https://www.finecity138.jp/outline.html"
  [2]=>
  string(32) "http://www.hirakata-p.jp/outline"
  [3]=>
  string(31) "http://www.honki-pj.com/outline"
  [4]=>
  string(57) "http://nishitetsu-sumai.com/centermarkstower/outline.html"
  [5]=>
  string(31) "http://senri100.jp/outline"
}

我添加了“ / outline”,并更改了索引->轮廓。但是我需要在此链接http://senri100.jp/index.html“ .HTML”部分中删除另一件事。

这是我使用的功能。

 function add($links){
        if (strpos($links, "https://www.finecity138.jp") === 0){
            return $links."outline.html";
        } else if (strpos($links, "outline") === false){
            return $links."outline";
        }

        return $links;
    }

    foreach ($links as $check){
        $replace[] = add($check);
    }

2 个答案:

答案 0 :(得分:2)

您在第一个if语句后返回

只需重新排列您的条款。

function add($links){
    if (strpos($links, "https://www.finecity138.jp") === 0){
      return $links."outline.html";
    }
    if (strpos($links, "outline") === false){
      return $links."outline";
    }

    return $links;
}

答案 1 :(得分:1)

您的问题扩展可能会变得有点过于广泛,但是我将仅考虑提供的示例数据来回答。看看http://php.net/manual/en/function.parse-url.php

似乎很有利

代码:(Demo

$array = [
    "http://sumiyoshi22.jp/",
    "https://www.finecity138.jp/",
    "http://www.hirakata-p.jp/",
    "http://www.honki-pj.com/",
    "http://nishitetsu-sumai.com/centermarkstower/index.html",
    "http://senri100.jp/index.html"
];

foreach ($array as $url) {
    $parts = parse_url($url);
    $scheme = $parts["scheme"];
    $host = $parts["host"];
    $path = dirname($parts["path"]) ?? '';
    if (in_array($host, ["www.finecity138.jp", "nishitetsu-sumai.com"])) {
        $path .= ($path == "/" ? "" : "/") . "outline.html";
    } else {
        $path .= "outline";
    }
    $output[] = "{$scheme}://{$host}{$path}";
}
var_export($output);