PDA

View Full Version : سوال در مورد دستور if



gazereng
چهارشنبه 01 خرداد 1392, 08:26 صبح
سلام.با فایل PHP زیر و از طریق یک لینک مثل زیر یک فایل تکست به اسم test.txt ایجاد میشه و 123456789 در فایل تکست ذخیره میشه و در فایل تکست به صورت زیر نمایش میده:


123456789
#########################


site.com/text.php?file=test.txt&data=123456789


<?php
$myFile = $_GET['file'];
$fh = fopen($myFile, 'a');
$stringData = $_GET['data'] . "\r\n\r\n#########################\r\n\r\n";
fwrite($fh, $stringData);
fclose($fh);
?>

می خوام از طریق دستور if اگر اخر لینک (*) اضافه بشه به خط بعدی نره و ادامه تکست قبلی ذخیرش کنه:

site.com/text.php?file=test.txt&data=salamkhoobi(*)
ممنون

xcodex
چهارشنبه 01 خرداد 1392, 11:07 صبح
دوست عزیز من متوجه نشدم

تکست بعدی میخواید کجا قرار بگیره ؟ جلوی # ها یا جلوی عدد؟

یه راهنمایی میکنم. اگه میخواید جلوی عدد درج بشه قبل از اینکه # ها رو append کنید شرط میزارید که اگه (*) وجود داشت # ها اضافه نشن

میتونید با تابع strpos این کار رو انجام بدید :



<?php
$myFile = $_GET['file'];
$fh = fopen($myFile, 'a');
if(strpos($_GET['data'] ,"(*)")!==false)
{
$stringData = $_GET['data'];
}
else
{
$stringData = $_GET['data'] . "\r\n\r\n#########################\r\n\r\n";
}
fwrite($fh, $stringData);
fclose($fh);
?>



کار تابع strpos این هست که داخل رشته دنبال عبارت مربوط میگرده و ایندکسش رو برمیگردونه .

یا حق

gazereng
چهارشنبه 01 خرداد 1392, 12:15 عصر
بابت کمکتون ممنون،اگر اخر متغیر data ، (*) بود ادامه ی اعداد قرار میگیره ولی نمی خوام خود (*) در اخرش ذخیره بشه یعنی (*) از آخر متغیر data پاک بشه،برای اینکار باید چکار کنم؟

xcodex
چهارشنبه 01 خرداد 1392, 13:48 عصر
دوست عزیز میتونید از تابع substr استفاده کنید :



<?php
$myFile = $_GET['file'];
$fh = fopen($myFile, 'a');
if(strpos($_GET['data'] ,"(*)")!==false)
{
$stringData=substr($_GET['data'],0,-3);
}
else
{
$stringData=substr($_GET['data'],0,-3) . "\r\n\r\n#########################\r\n\r\n";
}
fwrite($fh, $stringData);
fclose($fh);
?>




تابع substr یه تیکه از رشته رو بر اساس ایندکس شروع و پایان براتون برمیگردونه. رشته (*) 3 کاراکتر هست و من گفتم 3 تای آخر رو حذف کنه . اگه رشته دیگه ای با تعداد کاراکتر کمتر مثلا فقط * باشه شما میتونید به جای 3- ، 1- بزارید یا خیلی کارای دیگه . ولی این کارتون رو راه میندازه.

یا حق