最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php str_replace的替換漏洞

 更新時間:2008年03月15日 17:30:39   作者:  
php 的函數str_replace替換漏洞
定義和用法
str_replace() 函數使用一個字符串替換字符串中的另一些字符。

語法
str_replace(find,replace,string,count)

參數 描述
find 必需。規(guī)定要查找的值。
replace 必需。規(guī)定替換 find 中的值的值。
string 必需。規(guī)定被搜索的字符串。
count 可選。一個變量,對替換數進行計數。

提示和注釋
注釋:該函數對大小寫敏感。請使用 str_ireplace() 執(zhí)行對大小寫不敏感的搜索。

注釋:該函數是二進制安全的。

例子 1
復制代碼 代碼如下:

<?php
echo str_replace("world","John","Hello world!");
?>

輸出:

Hello John!

例子 2
在本例中,我們將演示帶有數組和 count 變量的 str_replace() 函數:
復制代碼 代碼如下:

<?php
$arr = array("blue","red","green","yellow");
print_r(str_replace("red","pink",$arr,$i));
echo "Replacements: $i";
?>

輸出:
Array
(
[0] => blue
[1] => pink
[2] => green
[3] => yellow
)
Replacements: 1

例子 3
復制代碼 代碼如下:

<?php
$find = array("Hello","world");
$replace = array("B");
$arr = array("Hello","world","!");
print_r(str_replace($find,$replace,$arr));
?>

輸出:

Array
(
[0] => B
[1] =>
[2] => !
)


漏洞相關函數:

<?php

$arr1 = Array( 
'http://img.jb51.net/img/offer/29/24/70/20/29247020',
'http://img.jb51.net/img/offer/29/24/70/20/29247020-1',
'http://img.jb51.net/img/offer/29/24/70/20/29247020-2'
);
$arr2 = Array(
'http://localhost/root/ups/af48056fc4.jpg',
'http://localhost/root/ups/cf33240aa3.jpg',
'http://localhost/root/ups/c30e40419b.jpg'
);
$data = '
<img src="http://img.jb51.net/img/offer/29/24/70/20/29247020"/>
<img src="http://img.jb51.net/img/offer/29/24/70/20/29247020-1"/>
<img src="http://img.jb51.net/img/offer/29/24/70/20/29247020-2"/>';
$data = str_replace($arr1,$arr2,$data);
var_dump($data);
?>

替換后的結果是:


string(169) "<img src="http://localhost/root/ups/af48056fc4.jpg"/><img src="http://localhost/root/ups/af48056fc4.jpg-1"/><img src="http://localhost/root/ups/af48056fc4.jpg-2"/>"str_replace 函數的聲明大概是這樣: str_replace($search, $replace, $input[,&$count]), 比如在對一個字符串進行替換操作, $input 就是源字符串(稱為數據源). 這很不合理,因為它把數據源放在第3位, 而 str_pos, strtok, str_repeat 等等函數都是把數據源放在第1位.也就是說str_replace并沒有替換掉數組中相對應的字符串,而是把數組中的第一個替換,然后把相同的字符串后多余的合并。

解決辦法:
function strrplace($arr1,$arr2,$data){ 
if(is_array($arr1)) {  
foreach($arr1 as $key => $value)  {
   $data = str_replace_once($value, $arr2[$key], $data);
  } } 
return $data;
}
function str_replace_once($needle, $replace, $data) //替換第一次
{
$pos = strpos($data, $needle);
if ($pos === false) {
return $data; 
}
return substr_replace($data, $replace, $pos, strlen($needle));

相關文章

  • PHP實時統計中文字數和區(qū)別

    PHP實時統計中文字數和區(qū)別

    今天小編就為大家分享一篇關于PHP統計實時統計漢字個數和區(qū)別,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • php實現scws中文分詞搜索的方法

    php實現scws中文分詞搜索的方法

    這篇文章主要介紹了php實現scws中文分詞搜索的方法,詳細介紹了scws中文分詞搜索的具體步驟與相關使用技巧,并提供了scws的本站下載地址,需要的朋友可以參考下
    2015-12-12
  • PHP命名空間namespace的定義方法詳解

    PHP命名空間namespace的定義方法詳解

    這篇文章主要介紹了PHP命名空間namespace的定義方法,結合實例形式詳細分析了php命名空間namespace及子命名空間的定義方法與相關注意事項,需要的朋友可以參考下
    2017-03-03
  • phpMyAdmin2.11.6安裝配置方法

    phpMyAdmin2.11.6安裝配置方法

    今天調試PHP數據庫Mysql,在單位的電腦上安裝phpMyAdmin數據庫管理軟件,本來是很簡單的事,卻出現了幾個問題:1/無法載入mcrypt擴展,請檢查PHP配置;/配置文件現在需要絕密的短語密碼(blowfish_secret);3/#2003-服務器沒有響應。
    2008-08-08
  • 解析php中兩種縮放圖片的函數,為圖片添加水印

    解析php中兩種縮放圖片的函數,為圖片添加水印

    本篇文章是對php中兩種縮放圖片的函數,為圖片添加水印的方法進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • PHP如何讀取由JavaScript設置的Cookie

    PHP如何讀取由JavaScript設置的Cookie

    本文主要介紹了PHP讀取由JavaScript設置的Cookie的方法。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-03
  • Laravel模板引擎Blade中section的一些標簽的區(qū)別介紹

    Laravel模板引擎Blade中section的一些標簽的區(qū)別介紹

    這篇文章主要介紹了Laravel模板引擎Blade中section的一些標簽的區(qū)別介紹,本文講解了@yield 與 @section、@show 與 @stop、@append 和 @override的區(qū)別,需要的朋友可以參考下
    2015-02-02
  • PHP中l(wèi)ist方法用法示例

    PHP中l(wèi)ist方法用法示例

    這篇文章主要介紹了PHP中l(wèi)ist方法用法,結合實例形式分析了list方法實現將數組值賦給變量的相關操作技巧與注意事項,需要的朋友可以參考下
    2016-12-12
  • php 判斷字符串中是否包含html標簽

    php 判斷字符串中是否包含html標簽

    本篇文章主要是對使用php判斷字符串中是否包含html標簽的實例代碼進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-02-02
  • PHP排序算法系列之直接選擇排序詳解

    PHP排序算法系列之直接選擇排序詳解

    這篇文章主要為大家詳細介紹了PHP排序算法系列之直接選擇排序的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01

最新評論

铁岭县| 宁远县| 柳州市| 滁州市| 云安县| 江川县| 禹州市| 渝中区| 江安县| 正蓝旗| 恭城| 巍山| 渭源县| 榆中县| 探索| 武冈市| 甘孜县| 长丰县| 萨嘎县| 大宁县| 德州市| 奈曼旗| 休宁县| 攀枝花市| 安阳县| 揭东县| 阳城县| 大丰市| 南靖县| 获嘉县| 兴山县| 阳城县| 都匀市| 聂荣县| 潢川县| 沂水县| 新民市| 镶黄旗| 夏河县| 三台县| 赞皇县|