2010-10-20 31 views
6
preg_replace("/{{(.*?)}}/e","$$1",$rcontent); 

Xin giải thích tuyên bố với tôi ... tôi không thể hiểu được điều nàyPHP preg_replace

+0

Tại sao bỏ phiếu đóng cửa này? Rõ ràng câu hỏi đặt ra là hỏi regex có nghĩa là gì. – JAL

+0

@ Alex JL: Tôi không bỏ phiếu để đóng, nhưng nó phải là tiêu đề. Tôi không biết thẻ meta phải làm gì với câu hỏi. – BoltClock

+0

@BoltClock nó khá là bí ẩn. – JAL

Trả lời

4

Cân nhắc việc sử dụng ví dụ:

$rcontent = "abc {{foo}} def"; 
$foo = 'bar'; 
$rcontent = preg_replace("/{{(.*?)}}/e","$$1",$rcontent); 
echo $rcontent; // prints abc bar def 

Tôi giả định rằng bạn đang gán giá trị của preg_match lại đến $rcontent hoặc nếu không nó sẽ không có ý nghĩa gì cả.

Bây giờ regex bạn đang sử dụng là {{(.*?)}} tìm kiếm bất kỳ thứ gì (không tham lam) giữa {{}} và cũng nhớ chuỗi phù hợp do dấu ngoặc đơn.
Trong trường hợp của tôi, số .*? khớp với số foo.

Tiếp theo phần thay thế là $$1. Bây giờ $1foo, vì vậy $$1 sẽ là $foobar. Vì vậy, {{foo}} sẽ được thay thế bằng giá trị $foobar.

Nếu $$1 chỉ là một loại và bạn có nghĩa là sử dụng $1 thì regex thay thế {{foo}} với foo.

+0

$ file = file ("templates/index.html"); $ rcontent = join ("", $ file); $ rcontent = preg_replace ("/{{(.*?)}}/ e", "$$ 1", $ rcontent); in $ rcontent; đây là mã của tôi. Hoạt động hoàn hảo..nhưng mẫu/index.html tệp không có bất kỳ dấu ngoặc đơn nào trong đó .. – sowmiya

+0

@sowmiya: Rất tiếc, tôi không nhận được câu hỏi của bạn. – codaddict

+0

đang sao chép nội dung của "templates/index.html" vào tệp php .... Để sao chép nội dung đang sử dụng regex này .. tôi không có bất kỳ dấu ngoặc nhọn nào trong tệp "templates/index.html" của mình. nhưng nó hoạt động hoàn hảo..cách động cơ mẫu này hoạt động i dunno ... – sowmiya

0

lười biếng * Lặp lại mục trước đó bằng không hoặc nhiều lần. Lười biếng, vì vậy động cơ đầu tiên cố gắng bỏ qua mục trước đó, trước khi thử hoán vị với các trận đấu ngày càng tăng của vật phẩm trước đó.

cho ví dụ: .*? phù hợp "def" trong abc "def" "ghi" jkl

http://www.regular-expressions.info/reference.html

Các vấn đề liên quan