Preg_replace有多行(php)

时间:2013-02-03 21:32:48

标签: php regex preg-replace

  

可能重复:
  How to replace text over multiple lines using preg_replace

我正在尝试从文件中读取一些文本而不是替换某些模式。如果我尝试从单个字符串替换patern它可以工作,但如果文件中有多个这样的字符串它不起作用。

$ this-> session-> set_flashdata('error_message','Naslovna vrstica jebilauspešnosranjena');

这是一个文本示例,我试图用这一行替换替换工作正常,但如果文件中还有其他这样的行,则不会单独匹配。

$content = file_get_contents("C:\Users\Borut\\test.txt");
$pattern="/^.*session->set_flashdata\((.*),(.*)\);$/";
$replacement="\$_SESSION[$1]=$2";

这是我的代码。如何替换上面显示的多个字符串。

1 个答案:

答案 0 :(得分:1)

您想要的修饰符是m。你可以找到所有修饰符here 也就是说,最简单,最好的正则表达式解决方案就是

"/\$this->session->set_flashdata\((.*?),\s*(.*?)\);/"

注意有一个?在。*之后。这是为了阻止与你的贪婪匹配。另请注意,删除^$

时不需要修饰符