本文目錄一覽:
請問PHP中如何進行文本替換
我的思路是這樣的,如果你是想把#號前面的內容全部替換掉,那麼可以用PHP里的字符串截取工具,首先,你可以用$pos=strpos(“Resource id #4
”,”#”)函數獲取到#的位置,然後就可以用substr()方法,該方法用法如下:
語法
substr(string,start,length)
參數
描述
string 必需。規定要返回其中一部分的字符串。
start
必需。規定在字符串的何處開始。
正數 – 在字符串的指定位置開始
負數 – 在從字符串結尾的指定位置開始
0 – 在字符串中的第一個字符處開始
length
可選。規定要返回的字符串長度。默認是直到字符串的結尾。
正數 – 從 start 參數所在的位置返回
負數 – 從字符串末端返回
注釋:如果 start 是負數且 length 小於等於 start,則 length 為 0。
例子
例子 1
?php
echo substr(“Hello world!”,6);
?
輸出:
world!
例子 2
?php
echo substr(“Hello world!”,6,5);
?
輸出:
world
php實現將一個文件中的內容替換
命令行下 “ren *.php *.htm” 就可以啊
如果不只是為了修改文件名 而是為了由動態頁面生成靜態頁面 也就是說生成的htm是那個php的預覽效果頁面
那麼具體的還得根據你的php內部代碼處理
看你提供的那段代碼好像就是實現了一個修改文件名的功能 如果你不願用命令 就是想用php實現這一功能的話 可以這麼寫:
$path=”./”;
$d = dir($path);
while($f=$d-read()) {
if($f==”.”||$f==”..”)continue;//去掉目錄列表中的.和..
$filename=rand(1111111111,9999999999).”.htm”;//從1111111111-9999999999 中產生一個隨機數作為文件名
copy($f,$filename);
}
這個就可以實現你說的功能
但是還有點不是很完善的 你還可以設置輸出的路徑,檢查拷貝狀態 多少文件成功多少失敗等等 如下
$path=”./”;
$outputpath=”out/”;//輸出目錄
@mkdir($outpath);//如果輸出目錄不存在 則創建 已經存在創建失敗,但不顯示出錯信息
$d = dir($path);
$i=0;//記錄文件數量
while($f=$d-read()) {
if($f==”.”||$f==”..”)continue;//去掉目錄列表中的.和..
$i++;
$filename=$outpath.rand(1111111111,9999999999).”.htm”;//從1111111111-9999999999 中產生一個隨機數作為文件名
if(copy($f,$filename))$j++;//拷貝成功的文件個數+1
else continue;
}
echo “共 $i 個文件 成功拷貝 $j 個文件”;
我看到你的消息了 你是要獲取所有的頁面的預覽效果
只需要在copy的文件加上預覽的路徑就可以了
?
$path=”./”; //文件讀取目錄
$d = dir($path);
$i=0;//記錄文件數量
while($f=$d-read()) {
if($f==”.”||$f==”..”||$f==”copyfile.php”)continue;//去掉目錄列表中的.和..以及當前執行的文件
$i++;
$filename=str_replace(“.php”,”.htm”,$f);//將文件的.php替換成.htm
if(copy(“”.$f,$filename))$j++;//拷貝成功的文件個數+1
else continue;
}
echo “共 $i 個文件 成功拷貝 $j 個文件”;
?
在用的時候確保你的目錄先所有的文件都能順利的的執行 我在測試的時候因為目錄中有幾個文件有問題 導致一直不成功 去掉了那幾個文件就很快了
在對文件名進行處理的時候 如果你的目錄下面還有其他類型的文件,建議這樣寫 :
$filename=$f.”.html”;//先將文件擴展名增加.html 比如a.php-》a.php.html
$filename=str_replace(“.php.”,””,$filename); //將”.php”去掉 a.php.html-a.html
這樣可以避免將裡面的非php的文件覆蓋
php接受帶點號的參數是自動把點號轉化為下劃線,有什麼可以解決的方法,急
沒辦法 程序就這麼設定的
Note:
變量名中的點和空格被轉換成下劃線。例如 input name=”a.b” / 變成了 $_REQUEST[“a_b”]。
變量名中的點
通常,PHP 不會改變傳遞給腳本中的變量名。然而應該注意到點(句號)不是 PHP 變量名中的合法字符。至於原因,看看:
?php
$varname.ext; /* 非法變量名 */
?
這時,解析器看到是一個名為 $varname 的變量,後面跟着一個字符串連接運算符,後面跟着一個裸字符串(即沒有加引號的字符串,且不匹配任何已知的健名或保留字)’ext’。很明顯這不是想要的結果。
出於此原因,要注意 PHP 將會自動將變量名中的點替換成下劃線。
php將內容中的點號替換出去
$html=’2 播客人氣:讀取中… 關注人氣:讀取中…’;
echo $html = str_replace(“…”,”,”,$html);
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/245674.html