PDA

View Full Version : سوال: چگونگی گزاشتن یک شرط



hamidhassas
پنج شنبه 28 فروردین 1393, 11:01 صبح
چطوری میتونم یک شرط بزارم که اگر کاربری عدد 1 را تا 64 رقم تکرار کرد پیغام داده بشه خطا و یا حرف a رو تا 64 رقم اگر تکرار کرد بهش بگه خطا (حل شد)




<?php
$string = '01234567890';
$chars = str_split($string);
$incorrect = false;
if(count(array_unique($chars)) === 1)
{
$incorrect = true;
}
else
{
$prevChar = array_shift($chars);
foreach($chars as $char)
{
if($char == $prevChar)
{
$incorrect = true;
}
elseif($char === substr(++$prevChar, -1))
{
$incorrect = true;
}
else
{
$incorrect = false;
break;
}
}
}
if($incorrect)
{
echo 'ERROR';
}
else
{
echo 'OK!';
}
?>

***BiDaK***
پنج شنبه 28 فروردین 1393, 11:46 صبح
اگر مقادیر رشته یکسانه یعنی aaaaaaaa میتونی با strlen طول رشته رو بدست بیاری اما اگر مقادیر رشته یکسان نبود با str_split هر کاراکتر رو در یک خونه ی آرایه بریزی و تعداد تکرار هر مقدار رو بدست بیاری.
$a = array_count_values(str_split($_POST['txt'], 1));
if ($a['a'] == 64)
{
echo "error!";
}

hamidhassas
پنج شنبه 28 فروردین 1393, 11:54 صبح
یعنی چی اگه مقدار مقادیر یکسان نبود

بعدم من میخوام کاری کنم که اگر کاربر از یک رقم مثلا a تا 5 رقم aaaaa رو وارد کنه پیغام خطا بده

یعنی میخوام کاری کنم که اگر کاربر موقع وارد کردن اسمش کلید a رو همین جوری گرفت چه یک بار و چه 64 بار کارکتر a رو وارد کرده باشه بهش بگه خطا

2undercover
پنج شنبه 28 فروردین 1393, 12:01 عصر
با استفاده از این تابع می تونید تعداد تکرار یک کاراکتر رو در یک رشته بدست بیارید:


function count_char($string, $char) { return preg_match_all('/' . $char . '/', $string); }

hamidhassas
پنج شنبه 28 فروردین 1393, 12:10 عصر
مسشه توضیح بدین
$char یعنی کارکتر مثلا a
$string یعنی تعداد رقم تکرار

خوب چطوری چاپ کنم خطا

بعدشم کدر رو چطوری بنویسم میخوام اگر کاربر از عدد 0 تا 9 رو وارد کرد که از یک رقم تا 64 رقم تکراری بود خطا بگیره همین کار رو با حروف a تا z انجام بدم

hamidhassas
پنج شنبه 28 فروردین 1393, 16:10 عصر
:عصبانی++::عصبانی++::متفکر:

hamidhassas
پنج شنبه 28 فروردین 1393, 22:52 عصر
با استفاده از این تابع می تونید تعداد تکرار یک کاراکتر رو در یک رشته بدست بیارید:


function count_char($string, $char) { return preg_match_all('/' . $char . '/', $string); }


میشه راهنمایی کنید

2undercover
جمعه 29 فروردین 1393, 05:14 صبح
الان شما می خواید کاری کنید که یک رشته فقط از یک کاراکتر تشکیل نشده باشه، یا می خواید کاری کنید که یک کاراکتر پشت سر هم تکرار نشه؟

hamidhassas
جمعه 29 فروردین 1393, 10:41 صبح
میخوام کاری کنم که اگر کاربر فقط عدد 1 رو پشت سر هم تکرار کرد یا عدد 2 یا 3 یا 4 یا 5 یا 6 الی 9 و 0 خطا بده اونم اگر یک رقم با شه تا 64 رقم مثل زیر





$Number=$_POST['serialnumber'];
if($Number=='1');
{
echo "شماره سریال وارد شده فاقد اعتبار است";
}
elseif($Number=='11');
{
echo "شماره سریال وارد شده فاقد اعتبار است";
}
elseif($Number=='111');
{
echo "شماره سریال وارد شده فاقد اعتبار است";
}
elseif($Number=='1111');
{
echo "شماره سریال وارد شده فاقد اعتبار است";
}
elseif($Number=='11111');
{
echo "شماره سریال وارد شده فاقد اعتبار است";
}
elseif($Number=='2');
{
echo "شماره سریال وارد شده فاقد اعتبار است";
}
elseif($Number=='22');
{
echo "شماره سریال وارد شده فاقد اعتبار است";
}
elseif($Number=='222');
{
echo "شماره سریال وارد شده فاقد اعتبار است";
}
elseif($Number=='2222');
{
echo "شماره سریال وارد شده فاقد اعتبار است";
}
elseif($Number=='22222');
{
echo "شماره سریال وارد شده فاقد اعتبار است";
}elseif($Number=='3');
{
echo "شماره سریال وارد شده فاقد اعتبار است";
}
elseif($Number=='33');
{
echo "شماره سریال وارد شده فاقد اعتبار است";
}
elseif($Number=='333');
{
echo "شماره سریال وارد شده فاقد اعتبار است";
}
elseif($Number=='3333');
{
echo "شماره سریال وارد شده فاقد اعتبار است";
}
elseif($Number=='33333');
{
echo "شماره سریال وارد شده فاقد اعتبار است";
}
elseif($Number=='4');
{
echo "شماره سریال وارد شده فاقد اعتبار است";
}
elseif($Number=='44');
{
echo "شماره سریال وارد شده فاقد اعتبار است";
}
elseif($Number=='444');
{
echo "شماره سریال وارد شده فاقد اعتبار است";
}
elseif($Number=='4444');
{
echo "شماره سریال وارد شده فاقد اعتبار است";
}
// همین جوری تا عدد 9
elseif($Number=='a');
{
echo "شماره سریال وارد شده فاقد اعتبار است";
}
elseif($Number=='aa');
{
echo "شماره سریال وارد شده فاقد اعتبار است";
}
elseif($Number=='aaa');
{
echo "شماره سریال وارد شده فاقد اعتبار است";
}
elseif($Number=='aaaa');
{
echo "شماره سریال وارد شده فاقد اعتبار است";
}
elseif($Number=='b');
{
echo "شماره سریال وارد شده فاقد اعتبار است";
}
elseif($Number=='bb');
{
echo "شماره سریال وارد شده فاقد اعتبار است";
}
elseif($Number=='bbb');
{
echo "شماره سریال وارد شده فاقد اعتبار است";
}
elseif($Number=='bbbb');
{
echo "شماره سریال وارد شده فاقد اعتبار است";
}
elseif($Number=='c');
{
echo "شماره سریال وارد شده فاقد اعتبار است";
}
elseif($Number=='cc');
{
echo "شماره سریال وارد شده فاقد اعتبار است";
}
elseif($Number=='ccc');
{
echo "شماره سریال وارد شده فاقد اعتبار است";
}
elseif($Number=='cccc');
{
echo "شماره سریال وارد شده فاقد اعتبار است";
}
// باز به همین صورت تا حرف Z
else
{
echo "شماره سریال صحیح میباشد";
}




و ادامه شرط بالا به صورت زیر خطا بده





$Number=$_POST['serialnumber'];
if($Number=='1234567890');
{
echo "شماره سریال وارد شده فاقد اعتبار است";
}
elseif($Number=='11223344556677889900');
{
echo "شماره سریال وارد شده فاقد اعتبار است";
}
elseif($Number=='111222333444555666777888999000');
{
echo "شماره سریال وارد شده فاقد اعتبار است";
}
elseif($Number=='111122223333444455556666777788889 9990000');
{
echo "شماره سریال وارد شده فاقد اعتبار است";
}

elseif($Number=='aabbccdd');
{
echo "شماره سریال وارد شده فاقد اعتبار است";
}
// باز به همین صورت تا حرف Z
else
{
echo "شماره سریال صحصی میباشد";
}

2undercover
جمعه 29 فروردین 1393, 10:57 صبح
بعد میشه یک نمونه شماره سریال صحیح هم مثال بزنید؟

2undercover
جمعه 29 فروردین 1393, 11:22 صبح
$string = '01234567890'; $chars = str_split($string); $incorrect = false; if(count(array_unique($chars)) === 1) { $incorrect = true; } else { $prevChar = array_shift($chars); foreach($chars as $char) { if($char == $prevChar) { $incorrect = true; } elseif($char === substr(++$prevChar, -1)) { $incorrect = true; } else { $incorrect = false; break; } } }
if($incorrect) { echo 'Incorrect!'; } else { echo 'Correct!'; }

این کدی که نوشتم سریال های زیر رو هم خطا می گیره البته:

bc
bbc
cd

یعنی اگه حروف متن به ترتیب حروف الفبا باشند (مثلا توی cd حرف d توی الفبا بعد از c هست)، می نویسه نادرست.