پرهام ناصحی
2 سال پیش توسط پرهام ناصحی مطرح شد
1 پاسخ

هندل کردن آکولاد با php

سلام ، من میخوام با php کاری انجام بدم که دیتای بین رو آکولاد رو تشخیص بدم . یعنی اگر داخل یک متغییر که یک جمله کامل نوشته شده است بیاییم و متن هایی را که در این متن بین آکولاد قرار دارند از متن حذف کنیم و آن را نمایش بدهیم .

اگر منظور من رو نفهمیدید به این مثال توجه کنید :
متن خام : سلام من برنامه نویس {#prog} هستم

متن بعد هندل : سلام من برنامه نویس هستم .


ثبت پرسش جدید
محسن عواطفی
تخصص : برنامه‌نویس وب
@webnolin 2 سال پیش مطرح شد
3

سلام
اگه بخواید دقیقا اینکارو انجام بدید باید نام متغیرهای موجود در متن و مقادیرشون رو به نحوی در دو آرایه جدا ذخیره کنید؛ مثلا این شکلی :

$vars = [
    'name' => 'mohsen',
    'website' => 'Roocket'
];
$keys = array_map(function($key){
    return "{" . $key . "}";
}, array_keys($vars));
$values = array_values($vars);

اینجا 3 تا متغیر داریم : vars - keys - values
متغیر vars برای ذخیره نام و مقادیر متغیرهاست.
حالا از طریق توابع array_keys و array_values نام‌ها و مقادیر متغیرهارو از هم جدا و تو دو تا آرایه مختلف ذخیره کردم.
منتها از اونجایی که گفتید میخواید متغیرهاتون بین آکولاد باشن من هم نام متغیر‌هارو از طریق تابع array_map تغییر دادم به شکلی که درون آکولاد قرار بگیرن.
بعد از انجام این کارا باید از طریق تابع str_replace متغیر‌هارو با مقادیرشون جایگزین کنید، به این شکل که آرایه متشکل از نام متغیر‌ها رو به عنوان پارامتر اول، آرایه متشکل از مقادیر متغیرها رو به عنوان پارامتر دوم و متن مورد نظر رو به عنوان پارامتر سوم به تابع بفرستید، به این شکل :

$text = 'Hello {name}, Welcome To {website}';
$text = str_replace($keys, $values, $text);
echo $text;
// Result => Hello mohsen, Welcome To Roocket

@parhamdeveloper


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام