我有一个包含以下数据的文本文件:
"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);
我突出显示了我现在被卡住的代码。
答案 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);
?>