我正在尝试编辑数组的项目。我在下面有$ 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);
}
答案 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);