2016-04-11 1 views
-2

У меня есть текстовый файл со следующими данными:Заменить путь и котировки с новым URL в файле

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

Я подчеркнул гр ода, где я застрял прямо сейчас.

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

?> 
Смежные вопросы