PHP 从 URL 获取 Twitter 用户名(正则表达式)
PHP Get Twitter username from URL (Regex)
我希望能够从 URL.
中提取 Twitter 用户名
例如:https://twitter.com/jack => jack
我发现这个正则表达式很有用。
if (preg_match("/^https?:\/\/(www\.)?twitter\.com\/(#!\/)?(?<name>[^\/]+)(\/\w+)*$/", $url, $regs)) {
return $regs['name'];
}
当 twitter URL 包含查询参数时似乎不起作用。
例如=https://twitter.com/jack?lang=en
returnsjack?lang=en
知道如何改进正则表达式来防止这种情况发生吗?
preg_match('/https?:\/\/twitter\.com\/(?<name>[^\?]+)\??.*/', 'https://twitter.com/jack?lang=en', $m);
var_dump(trim($m['name']));
$path = parse_url('https://twitter.com/jack?lang=en',PHP_URL_PATH);
var_dump(str_replace('/','', $path));
string(4) "jack"
我希望能够从 URL.
中提取 Twitter 用户名例如:https://twitter.com/jack => jack
我发现这个正则表达式很有用。
if (preg_match("/^https?:\/\/(www\.)?twitter\.com\/(#!\/)?(?<name>[^\/]+)(\/\w+)*$/", $url, $regs)) {
return $regs['name'];
}
当 twitter URL 包含查询参数时似乎不起作用。
例如=https://twitter.com/jack?lang=en
returnsjack?lang=en
知道如何改进正则表达式来防止这种情况发生吗?
preg_match('/https?:\/\/twitter\.com\/(?<name>[^\?]+)\??.*/', 'https://twitter.com/jack?lang=en', $m);
var_dump(trim($m['name']));
$path = parse_url('https://twitter.com/jack?lang=en',PHP_URL_PATH);
var_dump(str_replace('/','', $path));
string(4) "jack"