Tôi đang cố gắng cung cấp cho khách hàng khả năng gọi một hàm có nhiều đoạn mã khác nhau bằng cách chèn một mã ngắn vào trình soạn thảo WYSIWYG của họ.php thay thế cụm từ thông dụng thay vì chuỗi thay thế
Ví dụ, họ sẽ viết một cái gì đó giống như ...
[getSnippet(1)]
này sẽ gọi getSnippet ($ id) php function của tôi và đầu ra thích hợp 'đoạn'.
Nó hoạt động khi tôi cứng mã $ id như thế này ...
echo str_replace('[getSnippet(1)]',getSnippet(1),$rowPage['sidebar_details']);
Tuy nhiên, tôi thực sự muốn làm cho '1' năng động. Tôi loại đi đúng hướng với một cái gì đó giống như ...
function getSnippet($id) {
if ($id == 1) {
echo "car";
}
}
$string = "This [getSnippet(1)] is a sentence.This is the next one.";
$regex = '#([getSnippet(\w)])#';
$string = preg_replace($regex, '. \1', $string);
//If you want to capture more than just periods, you can do:
echo preg_replace('#(\.|,|\?|!)(\w)#', '\1 \2', $string);
Không hẳn làm việc :(
Điều gì không hoạt động với mã của bạn? – hakre
Nhìn vào 'preg_replace_callback()'. Nó cho phép bạn cung cấp một hàm nhận các bit của chuỗi được kết hợp bởi một regexp và nó trả về thay thế. – Barmar