用文件中的新url替换路径和引号

时间:2016-04-11 02:51:32

标签: php string file

我有一个包含以下数据的文本文件:

"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); 

我突出显示了我现在被卡住的代码。

1 个答案:

答案 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);

?>