PDA

View Full Version : آموزش: ذخیره لینک در دیتابیس(البته از نوع فارسی)



yeksib
شنبه 30 دی 1391, 01:08 صبح
سلام ، من وقتی میخواهم یک لینک بصورت زیر را در دیتابیس ذخیره کنم این شکلی میشه!؟
این یک لینک ؟ http://barnamenevis.org/forumdisplay.php?جمله فارسی
(http://barnamenevis.org/showthread.php?379804-ذخیره-لینک-در-دیتابیس(البته-از-نوع-فارسی) توی دیتابیس بصورت % و عدد ذخیره میشه ،برای جلوگیری از این مشکل لاید چیکار کرد؟

http://barnamenevis.org/forumdisplay.php?38-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87%E2%80%8C%D9%8 6%D9%88%DB%8C%D8%B3%DB%8C-%D8%AC%D8%A7%D9%88%D8%A7

Unique
شنبه 30 دی 1391, 01:26 صبح
مشکلی نیست ! url encode میشه. همونه. روی همین لینکی که گذاشتین موس را ببرین توی status مرورگر نگاه کنین میبینید مینویسه برنامه نویسی جاوا.

yeksib
شنبه 30 دی 1391, 13:44 عصر
درسته اما وقتی میخواهم از دیتابیس بخونم و توی یک دیتابیس بریزم اون وقت این شکلی نمیشه؟
تابعی ، چیزی برای این کار وجود نداره؟

Tarragon
شنبه 30 دی 1391, 13:50 عصر
الان به آدرس عمین تاپیک دقت کنید! هست :
http://barnamenevis.org/showthread.php?379804-%D8%B0%D8%AE%DB%8C%D8%B1%D9%87-%D9%84%DB%8C%D9%86%DA%A9-%D8%AF%D8%B1-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3(%D8%A7% D9%84%D8%A8%D8%AA%D9%87-%D8%A7%D8%B2-%D9%86%D9%88%D8%B9-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C) اما اگر شما برید تو http://barnamenevis.org/showthread.php?379804 هم همین صفحه میاد و حتی اگر بقیه رو هم عوض کنم مشکلی پیش نمیاد و این کار فقط با ID کار می کنه یعنی عدد 379804

yeksib
شنبه 30 دی 1391, 13:55 عصر
این که مشخصه ، میدونم ولی من میخواهم لینک بصورت فارسی ذخیره بشه یعنی تمام کارکتر ها و اعداد فارسی بشن؟
شما راهکاری سراغ دارید؟

Reza1607
یک شنبه 01 بهمن 1391, 09:27 صبح
شما بايد از urldecode استفاده كنيد تا اثر تابع urlencode از بين بره و حروف پارسي درست نمايش داده بشه

yeksib
یک شنبه 01 بهمن 1391, 14:40 عصر
شما بايد از urldecode استفاده كنيد تا اثر تابع urlencode از بين بره و حروف پارسي درست نمايش داده بشه

عالی بود درست شد!
ولی یک سوال دیگه با چه تابعی میشه مثلا از یک رشته (http://) رو حذف کرد!؟

Tarragon
یک شنبه 01 بهمن 1391, 14:50 عصر
فکر کنم preg_match !

2undercover
یک شنبه 01 بهمن 1391, 19:42 عصر
نیازی به preg_match نیست می تونید از str_replace استفاده کنید...!



str_ireplace('http://','',$url);

البته دقت کنید اون i قبل از replace برای حساس بودن به حروف بزرگ و کوچیکه...!

pani.khoram
یک شنبه 01 بهمن 1391, 20:53 عصر
سلام ، همون طوری که دوستان گفتن مشکل حل شد ولی دلیل اینکه باید حتما این کارو می کردید ، تاثیر مثبت آن رو سئو است اگر هم نمی کردید ، تاثیر منفی سئو از نگاه موتور های جستجو مثل گوگل ، یاهو و ... داشتید .

موفق باشید

Tarragon
دوشنبه 02 بهمن 1391, 06:06 صبح
نیازی به preg_match نیست می تونید از str_replace استفاده کنید...!



str_ireplace('http://','',$url);

البته دقت کنید اون i قبل از replace برای حساس بودن به حروف بزرگ و کوچیکه...!

فکر کنم حق با شماست ببخشید :خجالت:

امید امرایی
دوشنبه 02 بهمن 1391, 10:49 صبح
نیازی به preg_match نیست می تونید از str_replace استفاده کنید...!



str_ireplace('http://','',$url);

البته دقت کنید اون i قبل از replace برای حساس بودن به حروف بزرگ و کوچیکه...!

البته استفاده از str_replace و یا str_ireplace می تونه مشکل رو حل کنه اما همچنین ممکنه باعث بروز اشکالات پیش بینی نشده ایی هم بشه.
به عناون مثال:


$url = 'http://www.site.com/?url=http://www.site.com/somepgae.html';
echo str_ireplace('http://', '', $url);
// result is www.site.com/?url=www.site.com/somepgae.html';


این درحالیه که http نباید از http://www.site.com/somepgae.html حذف می شد.

راه حل اینه که از preg_replace استفاده بشه تا مطابقت رشته تنها در ابتدای آدرس بررسی بشه.



$url = 'http://www.site.com/?url=http://www.site.com/somepgae.html';
echo preg_replace('^http\:\/\/', '', $url);
// result is www.site.com/?url=http://www.site.com/somepgae.html';






--------------------------------------
توصیه هایی در دنیای وب و دیجیتال (http://www.amraei.com)