كيف أحول {str} إلى $str متغیر يحمل قيمة ما بداخله؟

أنا عندي نص بهذا الشكل:

$str=" c_books.php?action=edit&id={id}";
$id=1234;

وأريد أن أطبع قيمة المتغير في السطر الثاني 1234، مكان {id} في السطر الأول..

وطبعا أريد أن أطبعه في السطر الثالث الجديد.

كيف السبيل ؟

بحثت ولكن لم أنجح


$CODE   =   'echo "hello {name}";';
$name   =   "user";
eval(preg_replace("/\{(.*)\}/i","\$$1",$CODE));