这可能很容易,但我只想提取用户将进入某个字段的网址的突出显示区域。它始终位于结束/
和?
注意:
为了澄清,这只是一个粘贴的简单文本输入字段。我不需要修改页面网址。
用户字段网址
<?php $url = 'https://example.com/test/5tPa414MNG1cNfGjJs1Jr?si=tKTd7qJQ1Sda1ZUWoA5Q'; ?>
我需要提取的内容
https://example.com/test/ 5tPa414MNG1cNfGjJs1Jr
?SI = tKTd7qJQ1Sda1ZUWoA5Q
仅限代码块部分。
结束结果
<?php $extracted = '5tPa414MNG1cNfGjJs1Jr'; ?>
答案 0 :(得分:3)
你可以试试这个:
preg_match("/(?<=\/)(\w+)(?=\?)/", $url, $match);
echo $match[0];
答案 1 :(得分:1)
你可以在其他答案中使用正则表达式,但它们会消耗性能,在这种情况下不是强制性的。 在这里,我要在&#39; /&#39;上拆分网址。性格,我把最后一部分。然后我从最后一部分的开头选择一个子字符串到&#39;?&#39;。
<?php
$url = 'https://example.com/test/5tPa414MNG1cNfGjJs1Jr?si=tKTd7qJQ1Sda1ZUWoA5Q';
//Explode the URL on the /
$urlParts = explode('/', $url);
//Get the last part
$lastItem = end($urlParts);
$extracted = substr($lastItem, 0, strpos($lastItem, '?'));
此解决方案提供与其他解决方案相同的结果,但它不使用正则表达式。