如何使用JavaScript解析URL(也使用jQuery)?
比如我在我的字符串中有这个,
url = "http://example.com/form_image_edit.php?img_id=33"
Run Code Online (Sandbox Code Playgroud)
我想得到的价值 img_id
我知道我可以使用PHP轻松完成这项工作parse_url(),但我想知道如何使用JavaScript.
有没有办法从解析的URL中反转url?
$url = 'http://www.domain.com/dir/index.php?query=blabla#more_bla';
$parse = parse_url($url);
print_r($parse);
/*
array(
'scheme'=>'http://',
etc....
)
*/
$revere = reverse_url($parse); // probably does not exist but u get the point
echo $reverse;
//outputs:// "http://www.domain.com/dir/index.php?query=blabla#more_bla"
Run Code Online (Sandbox Code Playgroud)
或者,如果有一种方法验证丢失了部分推荐网址的网址,例如
www.mydomain.com
mydomain.com
应该全部返回
http://www.mydomain.com
或使用正确的子域
目前我正在使用parse_url,但是数组的主机项还包括我不想要的'WWW'部分.我该怎么做才能删除它?
$parse = parse_url($url);
print_r($parse);
$url = $parse['host'] . $parse['path'];
echo $url;
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用parse_url从url获取主机.但在某些查询中,我得到空的结果.这是我的功能:
function clean_url($urls){
$good_url=array();
for ($i=0;$i<count($urls);$i++){
$url=parse_url($urls[$i]);
//$temp_string=str_replace("http://", "", $urls[$i]);
//$temp_string=str_replace("https://", "", $urls[$i]);
//$temp_string=substr($temp_string, 0,stripos($temp_string,"/"));
array_push($good_url, $url['host']);
}
return $good_url;
}
Run Code Online (Sandbox Code Playgroud)
输入数组:
Array (
[0] => https://en.wikipedia.org/wiki/Data
[1] => data.gov.ua/
[2] => e-data.gov.ua/
[3] => e-data.gov.ua/transaction
[4] => https://api.jquery.com/data/
[5] => https://api.jquery.com/jquery.data/
[6] => searchdatamanagement.techtarget.com/definition/data
[7] => www.businessdictionary.com/definition/data.html
[8] => https://data.world/
[9] => https://en.oxforddictionaries.com/definition/data
)
Run Code Online (Sandbox Code Playgroud)
结果数组为空结果
Array (
[0] => en.wikipedia.org
[1] =>
[2] =>
[3] =>
[4] => api.jquery.com
[5] => api.jquery.com
[6] =>
[7] =>
[8] => data< …Run Code Online (Sandbox Code Playgroud) 我有这样的网址:
http%3A%2F%2Fexample.com%3Fa%3D1%26b%3D2%26c%3D3
Run Code Online (Sandbox Code Playgroud)
我解析它hyper::Url::parse并获取查询字符串:
let parsed_url = hyper::Url::parse(&u).unwrap();
let query_string = parsed_url.query();
Run Code Online (Sandbox Code Playgroud)
但它给了我一个字符串的查询.我想获取查询字符串HashMap.这样的事情:
// some code to convert query string to HashMap
hash_query.get(&"a"); // eq to 1
hash_query.get(&"b"); // eq to 2
Run Code Online (Sandbox Code Playgroud) 我有以下网址:http://sub.mysite.com/store/?store = Fine + Ting&storeid = 3726&test1 = value1&
test2 = value2
使用print_r(parse_url($url))给我这个:
Array (
[scheme] => http
[host] => sub.mysite.com
[path] => /store/
[query] => store=Fine+Ting&
[fragment] => 038;storeid=3726&test1=value1&test2=value2
)
Run Code Online (Sandbox Code Playgroud)
根据文档,我应该只fragment在hashmark#之后得到.
为什么然后parse_url返回片段?不应该在[query]吗?
我目前正在编写一个webapp,其中一些页面严重依赖于能够将正确的youtube视频拉入其中并进行播放.youtube URLS由用户提供,因此通常会带有变体,其中一个可能如下所示:
而另一个可能看起来像这样:
目前,我可以使用以下代码从后者中提取ID:
function get_youtube_video_id($video_id)
{
// Did we get a URL?
if ( FALSE !== filter_var( $video_id, FILTER_VALIDATE_URL ) )
{
// http://www.youtube.com/v/abcxyz123
if ( FALSE !== strpos( $video_id, '/v/' ) )
{
list( , $video_id ) = explode( '/v/', $video_id );
}
// http://www.youtube.com/watch?v=abcxyz123
else
{
$video_query = parse_url( $video_id, PHP_URL_QUERY );
parse_str( $video_query, $video_params );
$video_id = $video_params['v'];
}
}
return $video_id;
}
Run Code Online (Sandbox Code Playgroud)
如何处理使用?v版本而不是/v/版本的URL ?
如何检查远程 URL 是否具有有效的图像扩展名?
我想做的是使用 PHP 通过链接上传图像
copy('http://website.com/image.jpg', '/upload/filename.jpeg');
Run Code Online (Sandbox Code Playgroud)
代码工作正常,但我想检查输入的网址是否具有有效的图像扩展名。
它应该是 jpg、png 或 gif 文件。很高兴看到如何执行此操作的示例。
非常感谢您的帮助和时间。
在Objective C中是否有像parse_url()等效的东西?
我喜欢PHP中这个函数的简单性,并且在iPhone应用程序中需要相同的东西.例如:给出一个网址http://www.google.com/?someting=somthing
我可以使用主机,协议,基本URL等获得一个很好的数据结构,而无需创建解析字符串.
谢谢
我试图在PHP中解析URL,其中输入可以是以下任何一种:
码:
$info = parse_url('http://www.domainname.com/');
print_r($info);
$info = parse_url('www.domain.com');
print_r($info);
$info = parse_url('/test/');
print_r($info);
$info = parse_url('test.php');
print_r($info);
Run Code Online (Sandbox Code Playgroud)
返回:
Array
(
[scheme] => http
[host] => www.domainname.com
[path] => /
)
Array
(
[path] => www.domain.com
)
Array
(
[path] => /test/
)
Array
(
[path] => test.php
)
Run Code Online (Sandbox Code Playgroud)
您可以看到的问题是将域作为路径返回的第二个示例.