url — Редактирование элементов массива Переполнение стека

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

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"}

Я добавил «/ контур» и изменил индекс -> контур. Но еще одну вещь, которую мне нужно удалить в этой ссылке 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);
}

0

Решение

Расширение вашего вопроса может стать слишком широким, но я отвечу только на основании предоставленных образцов данных. Кажется, выгодно взглянуть на 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);
1

Другие решения

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector