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- بزارید یا خیلی کارای دیگه . ولی این کارتون رو راه میندازه.
یا حق
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.