Редактирование элементов массива Php - PullRequest
0 голосов
/ 19 декабря 2018

Я пытаюсь редактировать элемент массива.У меня есть массив ссылок $ прямо ниже.

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" и изменил индекс -> 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 голосов
/ 19 декабря 2018

Расширение вашего вопроса может стать слишком широким, но я отвечу только на основании предоставленных выборочных данных.Кажется выгодным взглянуть на http://php.net/manual/en/function.parse-url.php

Код: ( Демо )

$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);
0 голосов
/ 19 декабря 2018

Вы возвращаете после первого 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;
}
...