根据以下代码,如果$host_name类似于example.comPHP返回通知:Message: Undefined index: host但在http://example.comPHP返回的完整URL上example.com.我尝试使用FALSE和NULL语句但是没有用.
$host_name = $this->input->post('host_name');
$parse = parse_url($host_name);
$parse_url = $parse['host'];
Run Code Online (Sandbox Code Playgroud)
如何修改脚本以接受example.com并将其返回?
我需要解析可能包含不同于http或者https...的协议的URL,因为如果尝试创建一个java.net.URL像nio://localhost:61616构造函数崩溃这样的URL 的对象,我实现了这样的事情:
def parseURL(spec: String): (String, String, Int, String) = {
import java.net.URL
var protocol: String = null
val url = spec.split("://") match {
case parts if parts.length > 1 =>
protocol = parts(0)
new URL(if (protocol == "http" || protocol == "https" ) spec else "http://" + parts(1))
case _ => new URL("http" + spec.dropWhile(_ == '/'))
}
var port = url.getPort; if (port < 0) port = url.getDefaultPort
(protocol, url.getHost, …Run Code Online (Sandbox Code Playgroud) 这是我的代码
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input type="text" name="text"/>
<input type="submit" name="submit" value="submit"/>
</form>
<?php
if(isset($_POST['submit'])){
$url = $_POST['text'];
$parse = parse_url($url);
echo $parse['host'];
}
?>
Run Code Online (Sandbox Code Playgroud)
我使用parse_url以获取主机的名称,当有人输入URL,如果我现在试着输入一些垃圾输入到输出,它给出了一个错误:"未定义指数:主机",我想知道我们如何检查是否其在回显parse_url函数的输出之前,有效的url或只是一个字符串
可能重复:
提取网址的最后一部分
我有这样的网址:
http://www.domain.co.uk/product/SportingGoods/Cookware/1/B000YEU9NA/Coleman-Family-Cookset
Run Code Online (Sandbox Code Playgroud)
我想提取最后的产品名称"Coleman-Family-Cookset"
当我使用parse_url和print_r时,我最终得到以下结果:
Array (
[scheme] => http
[host] => www.domain.co.uk
[path] => /product/SportingGoods/Cookware/1/B000YEU9NA/Coleman-Family-Cookset
)
Run Code Online (Sandbox Code Playgroud)
我怎么然后修剪"Coleman-Family-Cookset"呢?
提前致谢