2016-04-11 74 views
-2

路徑和新的網址的報價我有以下數據的文本文件:替換文件

"K:\data\etrdtCfhbr6MUkAAFuVw.jpg" 
"K:\data\rgtdrCfhbr6OUYAE5lNR.jpg" 
"K:\data\Cfhbr6VVIrdtdAAmRPr.jpg" 
"K:\data\Cffh-EyWsersetsAQ8eIz.jpg" 

我想替換報價和路徑的一部分,以獲得類似這樣的輸出:

http://myweb.com/dat/etrdtCfhbr6MUkAAFuVw.jpg 
http://myweb.com/dat/rgtdrCfhbr6OUYAE5lNR.jpg 
http://myweb.com/dat/Cfhbr6VVIrdtdAAmRPr.jpg 
http://myweb.com/dat/Cffh-EyWsersetsAQ8eIz.jpg 

現在我有一些(僞)代碼,我不知道如何得到它正常工作:

$filecontents = file_get_contents('/path/to/file.txt'); //Load the file contents 
$newcontent = preg_replace('.....', $filecontents); //Use a regex to replace the stuff as I want 
file_put_contents('/path/to/file.txt', $newcontent); 

我強調的C噢,我現在被卡住了。

+2

而你在哪裏卡住了? – Rizier123

+1

[2] @ Rizier123您試過使用哪些代碼? – Jek

+0

我打賭有一個功能可以在手冊 –

回答

0

您可以使用file_get_contents()作爲字符串獲取文件。然後,您可以使用preg_replace()來根據需要替換每個路徑。與file_put_contents()你只需保存文件。

正則表達式/\".*\\\\(.*?)\"/m僅僅意味着:

  • \".*\\\\匹配一個雙引號(\"),然後一切(.*),直到最後一個反斜槓(\\\\
  • (.*?)\"匹配一切((.*?)),直到一個雙引號(\"
  • m修飾符m只是意味着爲每行使用正則表達式

代碼

<?php 

    $file = file_get_contents("test.txt"); 
    $file = preg_replace("/\".*\\\\(.*?)\"/m", "http://myweb.com/dat/$1", $file); 
    file_put_contents("test.txt", $file); 

?>