php str replace的替換漏洞

2022-10-06 05:51:11 字數 2263 閱讀 9686

定義和用法

str_replace() 函式使用乙個字串替換字串中的另一些字元。

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

引數 描述

find 必需。規定要查詢的值。

replace 必需。規定替換 find 中的值的值。

str程式設計客棧ing 必需。規定被搜尋的字串。

count 可選。乙個變數,對替換數進行計數。

提示和注釋

注釋:該函式對大小寫敏感。請使用 str_ireplace() 執行對大小寫不敏感的搜尋。

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

例子 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] => !

)漏洞相關函式:

程式設計客棧.jb51.net/img/offer/29/24/70/20/29247020-2"/>';

$data = str_replace($arr1,$arr2,$data);

var_dump($data);

?>

替換後的結果是:

string(169) "

&ldbkjbucet;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) } 

return $data;

}function str_replace_once($needle, $replace, $data) //替換第一次

return substr_replace($data, $replace, $pos, strlen($needle));

本文標題: php str_replace的替換漏洞

本文位址: /wangluo/php/41309.html

php str replace 替換 計算

formula 物料總額 1000 生產費用 銷售費用 管理費用 利潤金額 成本係數 地區係數 計算公式 數量 total 10 總 production cost 1 生產費用 sales cost 2 銷售費用 management cost 3 管理費用 profit 4 利潤金額 costf...

PHP str replace 只替換一次

在日誌裡頭看到這樣乙個查詢詞,php str replace 一次 使用者可能是在找如何利用php的str replace只替換目標字串的內容一次,而不是全部替換。這是個比較小但是有點意思的問題,正好之前也做過類似的處理,當時我是直接利用preg replace實現的。mixed preg repl...

Windows PowerShell批量替換檔名

q 假如資料夾有批量相似的檔名,如果檔名不符合需求了,要怎麼改呢,文件可以 ctrl h 一鍵替換字元,系統檔名可不支援 ctrl h 一鍵替換字元,動手能力強的已經乙個個手動在改了 滑稽,你是原始人嘛 如圖 可以通過windows自帶的powershell寫指令碼來實現批量修改檔名 下面來實現一下...