十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
本文实例讲述了php提取字符串中网站url地址的方法。分享给大家供大家参考。具体分析如下:
凯里网站建设公司创新互联,凯里网站设计制作,有大型网站制作公司丰富经验。已为凯里上1000+提供企业网站建设服务。企业网站搭建\外贸营销网站建设要多少钱,请找那个售后服务好的凯里做网站的公司定做!
今天写一个问答系统上线之后发现有很多人发链接了,由于业务部门要我们过滤掉网站地址了,下面我给大家分享一个提取字符串url地址函数,代码如下:
复制代码
代码如下:$postInfo['answer2']
='可以的,商业贷款可摊还36%,公积金贷款可摊还16%|||可以先把账户里的余额提取出来用作首付,然后每个月贷款商业贷款可摊还36%,公积金贷款可摊还16%|||可以的,现在甲类公积金是摊还比例
是工资基数的34%|||啊啊啊啊啊啊啊啊是的|||可以摊还,甲类34%
';
preg_match_all("/http:[\/]{2}[a-z]+[.]{1}[a-z\d\-]+[.]{1}[a-z\d]*[\/]*[A-Za-z\d]*[\/]*[A-Za-z\d]*/",$postInfo['answer2'],$array2);
print_r($array2);
if(!emptyempty($array2[0]))
{
foreach
($array2[0]
as
$k=$v){
$postInfo['answer2']
=
str_replace($array2[0][$k],'',$postInfo['answer2']
);
}
}
运行结果为:
复制代码
代码如下:(
[0]
=
Array
(
[0]
=
)
)
希望本文所述对大家的PHP程序设计有所帮助。
parse_url函数
我们先来了解一下parse_url函数,官方解决
说明
mixed
parse_url
(
string
$url
[,
int
$component
=
-1
]
)
本函数解析一个
URL
并返回一个关联数组,包含在
URL
中出现的各种组成部分。
本函数不是用来验证给定
URL
的合法性的,只是将其分解为下面列出的部分。不完整的
URL
也被接受,
parse_url()
会尝试尽量正确地将其解析。
要解析的
URL。无效字符将使用
_
来替换。
实例
代码如下
$url
=
"";
$parts
=
parse_url($url);
print_r($parts);
array
(
[scheme]
=
http
[host]
=
[path]
=
/welcome/
)
也可以自己去写一个算法!如下
代码如下
function
getParams()
{
$url
=
'/index.php?_p=index_a=showx=12y=23';
$refer_url
=
parse_url($url);
$params
=
$refer_url['query'];
$arr
=
array();
if(!empty($params))
{
$paramsArr
=
explode('',$params);
foreach($paramsArr
as
$k=$v)
{
$a
=
explode('=',$v);
$arr[$a[0]]
=
$a[1];
}
}
return
$arr;
}
调用方法
代码如下
$arr
=
getParams();
print_r($arr);
结果
结果:
Array
(
[_p]
=
index
[_a]
=
show
[x]
=
12
[y]
=
23
)
首先这里的referer是指你点的是这个链接进入上传页面的。
你点了上传操作,就又有了上传的请求url,按你的代码中:
U('album/imageupload',array('id'=albumid))
上传请求链接里你只传了这个所以$_GET['id']只会接收到albumid
解决办法:
方法一:
看看你的上传插件支持不支持附加post传参,支持的话在上传插件中传入,php用$_POST['id']就能得到id值
方法二:
上传链接中另加一个参数
U('album/imageupload',array('id'=albumid,
'albumid'=$_GET['id']))
php里用$_GET['albumid']接收
你应该说的是用GET方法传送表单吧。这里的参数可以用PHP提供的数组GET[ ],来解决。例如:要提取这个jb_id,可以先声明个变量:$jb_id=$_GET['jb_id']; 注意这里的变量名并不唯一。格式是:$变量名=$_GET[参数名];
你这个例子可写一下代码:
$jb_id=$_GET['jb_id'];
$id=$_GET['id'];
$sj=$_GET['sj'];
执行后, $jb_id值就是:11111 ,$id值就是:99999,$sj值就是:hsdbd
然后像处理一般变量那么处理。
不知道你明白不?其实你也可以用POST方式传递参数,用法跟GET完全相同,只是表单中的方式要改为:POST
php有系统自带的函数是可以直接获取到当前url的,下面小编就过来简单的分享一下吧,希望能帮到大家的忙;
操作方法
代码:
?php
//php获取当前url方法
$url = "http://".$_SERVER ['HTTP_HOST'].$_SERVER['PHP_SELF'];
echo $url;
?
运行结果
可以用以下4个方法来抓取网站 的数据:
1. 用 file_get_contents 以 get 方式获取内容:
?
$url = '';
$html = file_get_contents($url);
echo $html;
2. 用fopen打开url,以get方式获取内容
?
$url = '';
$fp = fopen($url, 'r');
stream_get_meta_data($fp);
$result = '';
while(!feof($fp))
{
$result .= fgets($fp, 1024);
}
echo "url body: $result";
fclose($fp);
3. 用file_get_contents函数,以post方式获取url
?
$data = array(
'foo'='bar',
'baz'='boom',
'site'='',
'name'='nowa magic');
$data = http_build_query($data);
//$postdata = http_build_query($data);
$options = array(
'http' = array(
'method' = 'POST',
'header' = 'Content-type:application/x-www-form-urlencoded',
'content' = $data
//'timeout' = 60 * 60 // 超时时间(单位:s)
)
);
$url = "";
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
echo $result;
4、使用curl库,使用curl库之前,可能需要查看一下php.ini是否已经打开了curl扩展
$url = '';
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
echo $file_contents;