• 1 رای - 3 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
کار با فایل های متنی
#1
Shocked 
سلام Shy
همین اول می خوام به خاطر اینکه زیاد سوال می پرسم و انجمنو شلوغ می کنم از همتون عذر بخوام.Blush

یه فایلی تو دیتا بیس ذخیره شده (منظورم text هستش). این فایل شامل یه تعداد جاخالی هست که با علامت _ مشخص شدن. مثل متن زیر :

کد:
This is a _ text. You _ fill blanks.
مقادیر موجود در آرایه
کد:
[sample,should]

حالا چطور موقع خوندن فایل به جای _ ها textbox بذارم و مقادیر رو از کاربر بگیرم.

مشکل دوم اینکه مقادیر اصلی جاخالی ها به صورت یک آرایه در دیتابیس باید ذخیره بشن و در مرحله بعد ، وقتی کاربر کل جاخالی ها رو پر کرد ، مقادیری که وارد کرده با اون آرایه مقایسه بشن و نشون داده شن. (چقدر شن نوشتماBig Grin )
W H A T E V E R   Sleepy 
  پاسخ
تشکر شده توسط : hidensoft cyletech
#2
کد پی‌اچ‌پی:
<?php 

$str 
'This is a _ text. You _ fill blanks.';

$ar = array('sample','should');

$str str_replace('_','%s',$str);
#This is a %s text. You %s fill blanks

echo vsprintf($str$ar); 

?>

http://ir.php.net/manual/en/index.php
http://ir.php.net/manual/en/function.str-replace.php
http://ir.php.net/manual/en/function.vsprintf.php
  پاسخ
تشکر شده توسط : cyletech masoudmanson
#3
@hidensoft : ممنونم نیک نام عزیز. راستی خیلی وقت بود که نبودی تو انجمن. امیدوارم دیگه نری و دیر به دیر بیای.
مسعود جان فکر کنم بدونم میخوای چیکار کنی. چون ممکنه تو بعضی متن ترانه ها عبارت هایی درست نباشن یا نویسنده اش ندونه خواننده چی میگه بجاش میخوای تکست باکس بگذاری تا کاربران دیگه بیان و ویرایش کنن یا اون عبارت رو پر کنن. اگر دقیقاً میخوای اینکارو کنی. با کدی که در زیر برات می نویسم هم میشه اینکارو کرد. کافیه کمی پیشرفته ترش کنی. مثلاً به هر فیلد یک آیدی بدی تا اگر اون آیدی پر بود جاشو پر کنه و متن ترانه رو بروز کنه.
کد پی‌اچ‌پی:
echo( '<form action="" method="post">' );

$str 'salam _ khoobi _ ali joon _ a _';

$str str_replace'_''<input size="1" type="text" />'$str );

echo( 
'</form>' );

print 
$str
غایب
  پاسخ
تشکر شده توسط : Bojbaj masoudmanson
#4
نقل قول:@hidensoft : ممنونم نیک نام عزیز. راستی خیلی وقت بود که نبودی تو انجمن. امیدوارم دیگه نری و دیر به دیر بیای.
من هم امیدوارم[عکس: 52620_wink.gif]
  پاسخ
تشکر شده توسط :
#5
علیرضا جان ( cyletech :دی ) کدت قبول !
منم همینون پیشنهاد دادم ولی الان یه مشکلی خودم دارم !!!!!
چجوری اینارو بخونــه ؟؟؟؟
وقتی replace میکنیم تکست باکس ها همه مثل هم هستن دیگه ! چجوری بفهمیم کدوم اولیه و کدوم بعدی و ... ؟؟؟؟
با جاوا اسکریپت تونستم ولی بدون جاوا اسکریپت آیا چگونه است :دی ؟؟؟
  پاسخ
تشکر شده توسط :
#6
گفتم که ، برای هر فیلد یک آیدی در نظر میگیری. نه از خودت ! بلکه مثل یک آرایه از صفر شروع میشن "_" ها در متن. هر کدوم یک ایدی در ذهن ما دارن. مثلاً آیدی اولین "_" صفر هست. پس آیدی اولین فیلدی که جاش قرار میگیره صفره ! بعد قبل از اینکه بفرستیش تو جدول ، با استفاده از اون آیدی موقعیت اون "_" رو پیدا می کنی بعد مقدار فیلد رو جای گزینش می کنی بعد میفرستیش تو جدول.
غایب
  پاسخ
تشکر شده توسط : masoudmanson
#7
نفهمیدم خب Confused !!!
یعنی بهتر بگم من بلد نیستم چجوری از replace استفاده کنم که به هر تکست باکس یه id بدم !!!! میشه ؟؟
الان با کد خودت اگه id بذاریم ، مگه همش یه id نمیشه ؟ اگه نذاریم هم که نمیدونم چجوری id بدم !

# : من خودم از اول به جای _ اومدم تکست باکس با id شمارشی گذاشتم که کار کنه .

یه مثال مینویسی که چجوری id میدی و میخونی لطفا ؟ مثال کامل هم نشد ، فقط همون خط تکست باکس رو بذاری ممنون میشم .
  پاسخ
تشکر شده توسط :
#8
اون روشی که من گفتم فکر کنم خیلی ساده بودا .. به کارت نیومد ؟
  پاسخ
تشکر شده توسط :
#9
چرا اتفاقا روشی که گفتی خیلی خیلی خیلی جالب بود ولی..
با روش تو کلمه ها رو جاگذاری میکنه ! مگه نه ؟
منظور من اینه که چجوری به جای _ ها تکست باکس با id های متفاوت بذاریم ؟
الان که فکر کردم دیدم با همین کد میشه این کار هم کرد !!!!!! مرســـــی Heart
  پاسخ
تشکر شده توسط :
#10
کد پی‌اچ‌پی:
<?php 

$str 
'This is a _ text. You _ fill blanks.';

$ar = array('<input type="text" id="felan" name="felan" />','<input type="text" id="besar" name="besar" />');

$str str_replace('_','%s',$str);
#This is a %s text. You %s fill blanks

echo vsprintf($str$ar); 

?>


کد:
This is a <input type="text" id="felan" name="felan" /> text. You <input type="text" id="besar" name="besar" /> fill blanks.
  پاسخ
تشکر شده توسط : Bojbaj masoudmanson


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان