當前位置:首頁 » 編程語言 » php替換src

php替換src

發布時間: 2022-05-10 11:57:39

php如何實現上傳圖片文件,並替換

首先建立兩個文件: change.html 和 change.php
change.html 文件的表單代碼如下:
<html>
<head>
<title>change file example.</title>
<meta charset="UTF-8">
</head>
<body>
<form method="post" action="changefile.php" enctype="multipart/form-data">
<table border=0 cellspacing=0 cellpadding=0 align=center width="100%">
<tr>
<td width=55 height=20 align="center">
<input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
文件:
</td>
<td>
<input name="file" type="file" />
<input type="submit" name="submit" value="submit" />
</td>
</tr>
</table>
</form>
</body>
</html>

這里有幾個要注意的地方,首先看這句<form method="post" action="change.php" enctype="multipart/form-data">,這里我們採用POST方法,個別瀏覽器還支持PUT方法,當然這需要對腳本進行修改,我並不建議這么做。表單中必須設置enctype="multipart/form-data,這樣,伺服器就知道上傳文件帶有常規表單信息,記住,這個是必須設置的。此外還需要一個隱藏域來限制上傳文件的最大長度:<input type="hidden" name="MAX_FILE_SIZE" value="2000000">,這里name必須設置成MAX_FILE_SIZE,其值就是上傳文件的最大長度,單位是B,這里我限製成2M。再看這句:<input name="file" type="file" value="瀏覽" >,type="file"說明了文件類型,這樣一個基本的上傳文件介面就完成了,接下來講講如何用PHP來處理上傳的文件,此外你的php.ini中設置的上傳文件最大長度可能會影響到你的實際上傳,請根據實際情況修改,另PHP的上傳是先傳到臨時目錄,在移至指定目錄的,了;臨時目錄的可根據需要修改,也可使用默認值……
以下為表單提交change.php文件代碼,來看看這個文件都有什麼:
<?php
header("content-type:text/html;charset=utf-8");

/**
* @param string $oldfile 需要更換的文件名(包含具體路徑名)
*/
function changeFile($oldfile){
$newfile = $_FILES['file']['name'];//獲取上傳文件名
$fileclass = substr(strrchr($newfile, '.'), 1);//獲取上傳文件擴展名,做判斷用
$type = array("jpg", "gif", "bmp", "jpeg", "png");//設置允許上傳文件的類型
if(in_array(strtolower($fileclass), $type)){
if(file_exists($oldfile)){
unlink($oldfile);
}

if(is_uploaded_file($_FILES['file']['tmp_name'])){//必須通過 PHP 的 HTTP POST 上傳機制所上傳的
if(move_uploaded_file($_FILES['file']['tmp_name'], $oldfile)){
//輸出圖片預覽
echo "<center>您的文件已經上傳完畢 上傳圖片預覽: </center><br><center><img src='$oldfile'></center>";
}
}else{
echo "<center>上傳失敗,文件大於2M,請重新上傳!</center>";
}
}else{
$text = implode(",", $type);
echo "<center>您只能上傳以下類型文件:", $text, "</center><br>";
// echo "<script>alert('您只能上傳以下類型文件:$text')</script>";
}
}

changeFile("./files/1.png");

剛看這些你可能有點暈~~,慢慢看,你就會發現其實這玩意SO EASY!!先講下原理,該程序以上傳圖片為例,先判斷文件類型是否為圖片格式,若是則上傳文件,接著上傳文件到並替換指定文件,成功上傳則輸出上傳的圖片預覽。這里要對程序中一些函數作些解釋。先看substr(strrchr($newfile, '.'), 1), strrchar()函數有什麼作用呢,我舉個例子大家就知道,比如一個圖片文件 pic.jpg,我們用 strrchar()處理,strrchr(pic.jpg,'.'),它將返回.jpg,明白了嗎?該函數返回指定字元在該字元串最後出現的位置後的字元串。配合 substr() 我們就可以取到jpg,這樣我們就得到了文件的後綴名,來判斷上傳文件是否符合指定格式。本程序把指定的格式放在一個數組中,實際使用時可根據需要添加。
接著,我們調用判斷文件類型的函數,並將其轉化為小寫strtolower($_FILES['file']['name']),這里有個很關鍵的東東$_FILES ,這是個超級全局數組,保存了需要處理的表單數據,如果開啟了register_globals,也可以直接訪問,但這是不安全的。看剛才那個上傳介面<input name="file" type="file">,根據這個表單名稱,我們可以得到很多信息:
$_FILES['file']['name']-- 得到文件名稱
$_FILES['file']['tmp_name']--得到臨時存儲位置
$_FILES['file']['size']--得到文件大小
$_FILES['file']['type']--得到文件MIME類型
得到這些信息,就可以輕松判斷文件的信息了,是不是很方便?^_^,接下來還有一些函數需要了解,file_exists()--判斷指定目錄是否存在,不存在我們當然不能上傳(好像是廢話!),is_uploaded_file--判斷文件是否已經通過HTTP POST上傳,move_uploaded_file--將上傳文件移至指定目錄。成功上傳,我們就輸出預覽,否則輸出上傳失敗……

㈡ php用正則表達式替換img中src的路徑。

--這個還要寫正則!直接用DW就可以批量替換了!


幫你寫了一個

$url='<imgwidth="197"height="253"alt=""src="/case/clxy/page/files/newspic/20090928084704364888.jpg"border="0"/>';
$ok=preg_replace('/(<img.+src="?.+)(case/clxy/page/)(.+."?.+>)/i',"${1}${3}",$url);
echo$ok;

替換後的結果為

<imgwidth="197"height="253"alt=""src="/files/newspic/20090928084704364888.jpg"border="0"/>

㈢ php 正則查找 圖片的src 並替換相應的src

/TestDemo/Tpl/default/Public/Files/2010_09_04/1283591048.jpg轉
/TestDemo/Tpl/default/File/Uploads/2010_9_6/1283591048.jpg
根據你題目裡面舉例的這種對比的需求,轉換條件認為是
「/Public/Files/全日期/數字.jpg」形式的圖片轉換成
「/File/Uploads/緊縮日期/數字.jpg」形式的圖片。如果實際你的需求有所不同,可以根據這個略微對正則做修改。代碼替換部分如下:

$str1 = "<p><img height=\"32\" alt=\"\" src=\"/TestDemo/Tpl/default/Public/Files/2010_09_04/1283591048.jpg\" width=\"32\" border=\"0\" />來留言看看這的風景好嗎 <img alt=\"\" src=\"/TestDemo/Public/kindeditor/plugins/emoticons/13.gif\" border=\"0\" /></p><img height=\"32\" alt=\"\" src=\"/TestDemo/Tpl/default/Public/Files/2010_12_01/88668866.jpg\" width=\"32\" border=\"0\" />";
//這里多舉一個圖片例子試試
$str2 = preg_replace("/(src=\"[^\"]*?)\/Public\/Files(\/\d{4}_)[0]?(\d{1,2}_)[0]?(\d{1,2}\/\d+[.](?:jpg|gif|bmp)\")/","$1/File/Uploads$2$3$4$5",$str1);
?>
//規則有不同的話你可以這里對比修改下正則參數。good luck~

//----------------------------------------
既然需求少了那麼多,就可以
$str2 = preg_replace("/(src=\"[^\"]*?)\/Public\/Files(\/\d{4}_\d{1,2}_\d{1,2}\/\d+[.](?:jpg|gif|bmp)\")/","$1/File/Uploads$2",$str1);
行了,如果對圖片的格式限制不嚴格(嚴格點的就需要在尾巴那裡羅列出來),可以再簡化成
$str2 = preg_replace("/(src=\"[^\"]*?)\/Public\/Files(\/\d{4}_\d{1,2}_\d{1,2}\/\d+[.][a-zA-Z]+\")/","$1/File/Uploads$2",$str1);

㈣ php截取字元串中指定的標簽的值並替換

利用php自帶的函數preg_match就可以了。
在php中preg_match()函數是用來執行正則表達式的一個常用的函數
// 從 URL 中取得主機名,並替換
preg_match("/^(http://)?([^/]+)/i", "http://www.***.net/index.html", $matches);
$host = $matches[2];
// 從主機名中取得後面兩段
preg_match("/[^./]+.[^./]+$/", 'test', $matches);
echo "domain name is: {$matches[0]}n";
?>
本例將輸出:
domain name is: test

㈤ php文本替換,文本中有若干Img標簽,要將img中的src替換掉,值不同,怎麼循環。

把src的值用一個數組保存起來1=>src1這樣子,然後循環賦值給img

㈥ 各位大神,如何用php編寫代碼,用字元串 "src=",替換 「src=\」,謝謝!

利用php的替換函數 還有正則表達是匹配查詢,就可以了

㈦ 如何替換織夢CMS圖片代碼里的src

如果要將代碼src換成別的 請到相應的模板進行替換即可,舉個栗子:
生成首頁不論是靜態或是動態,都會通過首頁模板來進行(一般首頁的模板為index.htm,是在templets/default/),然後在模板中找到相對應的img src代碼,將他更換為其它的代碼即可

㈧ php 正則替換src裡面的內容

<?php

$str='imgsrc="abcccccccccc"';

$str=preg_replace('/src=".*?"/','src="helloworld"',$str);

echo$str;

㈨ php中替換指定的TXT文本內容怎麼替換。

$findstr='13800|這里是移動客服'; //你要查找替換的 是這東西
$replacestr='13800|這里是移動客服|你好';
for($i=0;$i<count($farray);$i++){
if($farray[$i]==$findstr){
//unset($farray[$i]);
//替換操作。。。
<a href="https://www..com/s?wd=str_replace&tn=44039180_cpr&fenlei=_5y9YIZ0lQzqlpA-" target="_blank" class="-highlight">str_replace</a>($findstr,$replacestr,$array[$i]);
break;
}<img id="selectsearch-icon" src="https://gss0.bdstatic.com/70cFsjip0QIZ8tyhnq/img/iknow/qb/select-search.png" alt="搜索">

㈩ php正則表達式替換圖片地址

<?php
/*PHP正則提取圖片img標記中的任意屬性*/
$str
=
'<center><img
src="/uploads/images/20100516000.jpg"
height="120"
width="120"><br
/>PHP正則提取或更改圖片img標記中的任意屬性</center>';
//1、取整個圖片代碼
preg_match('/<\s*img\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i',$str,$match);
echo
$match[0];
//2、取width
preg_match('/<img.+(width=\"?\d*\"?).+>/i',$str,$match);
echo
$match[1];
//3、取height
preg_match('/<img.+(height=\"?\d*\"?).+>/i',$str,$match);
echo
$match[1];
//4、取src
preg_match('/<img.+src=\"?(.+\.(jpg|gif|bmp|bnp|png))\"?.+>/i',$str,$match);
echo
$match[1];
/*PHP正則替換圖片img標記中的任意屬性*/
//1、將src="/uploads/images/20100516000.jpg"替換為src="/uploads/uc/images/20100516000.jpg")
print
preg_replace('/(<img.+src=\"?.+)(images\/)(.+\.(jpg|gif|bmp|bnp|png)\"?.+>)/i',"\${1}uc/images/\${3}",$str);
echo
"<hr/>";
//2、將src="/uploads/images/20100516000.jpg"替換為src="/uploads/uc/images/20100516000.jpg",並省去寬和高
print
preg_replace('/(<img).+(src=\"?.+)images\/(.+\.(jpg|gif|bmp|bnp|png)\"?).+>/i',"\${1}
\${2}uc/images/\${3}>",$str);
?>

熱點內容
python嵌套for循環 發布:2025-05-11 01:51:44 瀏覽:227
安卓怎麼取消後台限制 發布:2025-05-11 01:45:45 瀏覽:257
一鍵搭建sk5伺服器 發布:2025-05-11 01:40:09 瀏覽:513
鴻業acs加密鎖模擬器 發布:2025-05-11 01:38:49 瀏覽:937
神廟逃亡2安卓版怎麼玩 發布:2025-05-11 01:38:05 瀏覽:161
凱傑都什麼配置 發布:2025-05-11 01:38:04 瀏覽:471
php微信開源系統源碼 發布:2025-05-11 01:37:54 瀏覽:813
pythonfor多個參數 發布:2025-05-11 01:12:32 瀏覽:74
plcsfc編程 發布:2025-05-11 01:11:56 瀏覽:166
安卓手機能刪除什麼東西 發布:2025-05-11 01:03:55 瀏覽:415