PHP函数-strpos()

使用strpos()函数


作用:查找x字符在字符串中第一次出现的位置;
使用场景:

  1. 判断a是否存在于b中;
  2. 判断a在b中第一次出现的位置;

用法1:
TIPS:请切记不要使用if(strpos(xxx))的形式来处理,因为strpos()函数的返回值是字符串第一次出现的位置或者false。

$_a = 'blood in fire';
if(strpos($_a,'fire') !== false){
    echo 'strpos() function success';
}else{
    die('use error');
}

用法二:

  $_a = '<img src="http://www.xxxx.com" width=200px height=400px />';
  if (strpos($_a, 'px') !== false){
      echo strpos($_a, 'px');
  }

一个获取图片URL的strpos()函数实例,代码如下:

<!DOCTYPE>
<html>
<head>
<title>瀑布流</title>
<meta charset="utf8" />
</head>
<style type="text/css">
*{
    font-family:微软雅黑;
}
</style>
<body>
<form action="" method="post">
请输入站点页面,用于抓取图片:<input type="text" name="pic" /><br />
<p>友情提示</p>
风景图片:http://www.27270.com/word/fengjingsheying/ <br />
风景图片:http://www.tooopen.com/img/87.aspx <br />
素材公社:http://www.tooopen.com/    <br />
图片之家:http://www.tupianzj.com/   <br />
百度图片:http://image.baidu.com/    <br />
天堂图片:http://www.ivsky.com/  <br />
<input type="submit" name="send" value="提交" />
</form>

<?php   
//取得指定位址的內容,并储存至 $text  
if(@$_POST['send']){
    @$text=file_get_contents($_POST['pic']);
}

//取得所有img标签,并储存至二维数组 $match 中   
@preg_match_all('/<img[^>]*>/i', $text, $match);   

//取出img
$_img = array();
foreach ($match as $_k => $_v){
    $_img = $_v;
}
//清洗不拥有链接的图片
$_http_img = array();
foreach ($_img as $_k => $_v){
    if(strpos($_v, "http")){
        @$_http_img[] = $_v;
    }
}
//获得纯粹的URL
$_real_pic = array();
for ($_i = 0;$_i < count($_http_img);$_i ++){
    $_first = strpos($_http_img[$_i], "src=") + 4;
    if(strpos($_http_img[$_i], 'jpg')){
        $_ext = 'jpg';
    }elseif (strpos($_http_img[$_i], 'gif')){
        $_ext = 'gif';
    }elseif (strpos($_http_img[$_i], 'png')){
        $_ext = 'png';
    }elseif (strpos($_http_img[$_i], 'jpeg')){
        $_ext = 'jpeg';
    }
    $_last       = strpos($_http_img[$_i], $_ext) + 4 - $_first;
    $_done       = $_last - $_first;
    $_real_pic[] = substr($_http_img[$_i], $_first,$_last);
}
// var_dump($_real_pic);
// print_r($_http_img);
?>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值