PDA

View Full Version : سوال: ذخیره رشته در فایل JS بدون حضور کاراکتر \



Rink.e
سه شنبه 26 بهمن 1389, 10:42 صبح
با عرض سلام خدمت همه دوستان

من میخوام اسکریپتی بنویسم که یک مقدار POST شده از فرم که شامل مقدار طولانی است را در درون یک فایل .js ذخیره کنم البته من کد زیر را به کار بردم :



$f = fopen("file.js","w");

//record question and answer options
fputs($f,$_POST['output'] );


fclose($f);

و مقدار Post شده را در درون فایل .js ذخیره می کنم مشکل من اینجاست که رشته ای که در درون فایل file.js ذخیره می کنم با کاراکتر های \ همراه است و موقعی که میخواهم بعدا از آنها استفاده کنم چون کاراکتر \ همراه با رشته ها ذخیره شده است برنامه من درست کار نمی کند
دوستان راه حلی دارند ؟

Rink.e
سه شنبه 26 بهمن 1389, 17:53 عصر
با سلام

سپاسگذارم از پاسخگوییتان بنده همه راه ها را تست کردم متاسفانه راه شما نیز جواب نداد.

با احترام.

tem988
سه شنبه 26 بهمن 1389, 20:24 عصر
سلام
این کد جدید رو من تست کردم و درست کار کرد




$insert = "salam\khobi\chetory";
$insert = str_replace("\\", "-", $insert);
echo $insert;



و نتیجه اینو بهم داد




salam-khobi-chetory

eshpilen
سه شنبه 26 بهمن 1389, 20:33 عصر
فکر میکنم تابع addslashes به کار شما بیاد.
چون خودم جایی که میخواستم ورودی کاربر رو در یک رشته در جاوااسکریپت درج کنم استفاده کردم. اینم یه مثال واقعی:

echo "<script language=\"javascript\">\n<!--\nlogin.username.value='".addslashes($_POST['username'])."';";
ضمنا فقط کاراکتر \ نیست که مشکل ایجاد میکنه. کاراکترهایی مثل ' یا " هم میتونن مشکل ایجاد کنن، و addslashes تمام اینها رو حل میکنه.
اگر شما خروجی این تابع رو در یک متغییر رشته ای در جاوااسکریپت قرار بدید، نیازی به تبدیل دیگه ای هم ندارید (مثلا موقع خوندن لازم نیست کاراکترها رو تبدیل کنید). همهء کاری که باید بکنید فقط استفاده از این تابع موقع درج در رشته های جاوااسکریپت هست.

Rink.e
سه شنبه 26 بهمن 1389, 23:20 عصر
سپاسگذارم از همه شما به خاطر پاسخگوئی تان پاسخ جناب tem988 بهترین پاسخ بود.

با احترام.