سؤال

لذلك أريد أن أفعل شيئا مثل هذا في PHP. إذا كان لدي سنة بين قوسين [1995] أريدها تحويلها إلى الفرق في العام الحالي إلى 1995.

شيء مثل "لقد كان [1995] سنوات منذ حدوث شيء ما."

لذلك مع كونها عام 2009، كما يقول

"لقد مر 14 عاما منذ أن حدث شيء ما."

من الواضح أن جزء طرح سيكون سهلا للغاية، لكن لا يمكنني معرفة كيف أكتب هذا حتى أتمكن من وضع أي عدد بين قوسين وسيخرج PHP الفرق. أنا أستخدم هذا للحصول على تقويم، حيث يبقى العشرات من التواريخ نفسها كل عام، فقط نريد أن نلاحظ الفرق.

أريد استخدام شيء مثل

preg_replace(array_keys($bbcode), array_values($bbcode), $events)

$ مجموعة BBCode لديها بالفعل بعض العناصر مثل هذا

"/\[url\=(.*?)\](.*?)\[\/url\]/is" => "<a href='$1' target='_blank'>$2</a>",
هل كانت مفيدة؟

المحلول

جرب شيئا مثل هذا

<?php
$str = "It's been [1995] years sice something...";

$regexp = '/\[(\d+)\]/e';
$replace = 'date("Y", time()) - $1';

echo preg_replace($regexp, $replace, $str);
?>

ال e يقوم المعدل على Regex يجعل إعداد السلسلة استبدال ك PHP، بدلا من سلسلة بسيطة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top