需要帮助从 url 中删除部分内容
Need help remove part from url
我需要从 url 获得一部分,我知道这个网站上有很多教程
但我仍然无法得到它...
这个样本 url :
https://www.domain.com/want-to-keep-35/?idku=rbxbbgh3dKqn
我只需要来自那个 url 的这一部分,没有域、斜杠和结尾 url
want-to-keep-35
已经尝试过此代码:
preg_replace('|https?://www\.[a-z\.0-9]+|i', '', $serp);
但没有用。让我知道这里是否有人可以帮助我,谢谢
如果您连续使用两个模式运行,您将能够消除第一部分,然后消除第二部分。
模式 1 将找到 http 或 https,然后是 ://。然后它将读取所有不是斜杠的内容,直到第一个斜杠有效地从 url 中删除域。最后,它会混入您不想要的斜杠中。
模式 2 将取自以 want-to...
开头的字符串并找到第一个斜杠及其后的所有内容。
$url = "https://www.domain.com/want-to-keep-35/?idku=rbxbbgh3dKqn";
$pattern1 = "/https?\:\/\/[^\/]+\//";
$pattern2 = "/\/.*/";
$url = preg_replace($pattern1, '', $url);
$url = preg_replace($pattern2, '', $url);
echo $url;
产量
want-to-keep-35
你也可以传入一个模式数组,它会按顺序评估它们
$url = "https://www.domain.com/want-to-keep-35/?idku=rbxbbgh3dKqn";
$patterns = array("/https?\:\/\/[^\/]+\//", "/\/.*/");
$url = preg_replace($patterns, '', $url);
echo $url;
如果就这么简单,您可以使用以下简单的方法来获得您想要的:
$url = 'https://www.domain.com/want-to-keep-35/?idku=rbxbbgh3dKqn';
$re = '#https://www\..*?\..*?/(.*?)/#i';
preg_match($re, $url, $matches);
echo $matches[1]; // want-to-keep-35
试试这个
<?php
$url = 'https://www.domain.com/want-to-keep-35/?idku=rbxbbgh3dKqn';
$parsedURL = parse_url($url);
echo "<pre>";
var_dump(parse_url($url));
echo "</pre>";
$result = trim($parsedURL['path'], '/');
echo $result;
仅如果您知道域名,为什么不直接使用:
$url = 'https://www.domain.com/want-to-keep-35/?idku=rbxbbgh3dKqn';
$keep = explode("https://www.domain.com/", $url);
$keep2 = explode("/", $keep[0]);
$keep[0] 将包含 'want-to-keep-35/?idku=rbxbbgh3dKqn'
$keep2[0] 将包含 'want-to-keep-35'
我需要从 url 获得一部分,我知道这个网站上有很多教程 但我仍然无法得到它...
这个样本 url :
https://www.domain.com/want-to-keep-35/?idku=rbxbbgh3dKqn
我只需要来自那个 url 的这一部分,没有域、斜杠和结尾 url
want-to-keep-35
已经尝试过此代码:
preg_replace('|https?://www\.[a-z\.0-9]+|i', '', $serp);
但没有用。让我知道这里是否有人可以帮助我,谢谢
如果您连续使用两个模式运行,您将能够消除第一部分,然后消除第二部分。
模式 1 将找到 http 或 https,然后是 ://。然后它将读取所有不是斜杠的内容,直到第一个斜杠有效地从 url 中删除域。最后,它会混入您不想要的斜杠中。
模式 2 将取自以 want-to...
开头的字符串并找到第一个斜杠及其后的所有内容。
$url = "https://www.domain.com/want-to-keep-35/?idku=rbxbbgh3dKqn";
$pattern1 = "/https?\:\/\/[^\/]+\//";
$pattern2 = "/\/.*/";
$url = preg_replace($pattern1, '', $url);
$url = preg_replace($pattern2, '', $url);
echo $url;
产量
want-to-keep-35
你也可以传入一个模式数组,它会按顺序评估它们
$url = "https://www.domain.com/want-to-keep-35/?idku=rbxbbgh3dKqn";
$patterns = array("/https?\:\/\/[^\/]+\//", "/\/.*/");
$url = preg_replace($patterns, '', $url);
echo $url;
如果就这么简单,您可以使用以下简单的方法来获得您想要的:
$url = 'https://www.domain.com/want-to-keep-35/?idku=rbxbbgh3dKqn';
$re = '#https://www\..*?\..*?/(.*?)/#i';
preg_match($re, $url, $matches);
echo $matches[1]; // want-to-keep-35
试试这个
<?php
$url = 'https://www.domain.com/want-to-keep-35/?idku=rbxbbgh3dKqn';
$parsedURL = parse_url($url);
echo "<pre>";
var_dump(parse_url($url));
echo "</pre>";
$result = trim($parsedURL['path'], '/');
echo $result;
仅如果您知道域名,为什么不直接使用:
$url = 'https://www.domain.com/want-to-keep-35/?idku=rbxbbgh3dKqn';
$keep = explode("https://www.domain.com/", $url);
$keep2 = explode("/", $keep[0]);
$keep[0] 将包含 'want-to-keep-35/?idku=rbxbbgh3dKqn'
$keep2[0] 将包含 'want-to-keep-35'