با سلام خدمت کاربرن عزیز گروه کامپیوتر دانشگاه آزاد
با توجه به سوالات متداول از همکارانمان برای توضیح کد های Vpi و Vci بر آن شدیم در یک پست به این سوال کاربران عزیز پاسخ دهیم با ما همراه باشید. . .
VCI و VPI دو مقدار مهم در تنظیمات مودم هستند که مشخص کننده مسیر و کانال انتقال دادهها به ISP است که برای هر ISP داخلی، متفاوت از دیگری است. این دو مقدار در حالت انتقال ATM استفاده میشوند.
Vpi مخفف : Virtual Path Identifier - مشخص کننده مسیر مجازی
Vci مخفف :Virtual Channel Identifier -مشخص کننده کانال مجازی
یکی از مهمترین تنظیماتی که برای اتصال به اینترنت در مودم (Modem) خود باید آن را انجام دهید، تنظیمات مربوط به دو مقدار VCI و VPI است. این مقادیر توسط ISP مشخص میشوند و نشان دهنده کانال انتقال داده اند.
توجه: VPI مشخص کننده شماره مسیر VP و VCI مشخص کننده شماره مسیر VC است. بنابراین برای درک بهتر، ابتدا کانال VC و مسیر VP را شرح میدهیم و در بخش دوم به مشخص کننده آنها (یعنی VCI و VPI) که در تنظیمات مودم استفاده میشوند، خواهیم پرداخت.
VP مخفف عبارت "Virtual Path" به معنای "مسیر مجازی" است. در تکنولوژی انتقال داده ATM (یک حالت انتقال داده - در بخشهای بعدی توضیح داده خواهد شد)، مسیر اصلی و فیزیکی انتقال دادهها به چندین بخش مجزا تقسیم میشود. چون این تقسیم بندی واقعاً به صورت فیزیکی نیست و در لایههای بالاتر استفاده میشود، به آن "مسیر مجازی" گفته میشود. این تقسیم بندی مسیر، برای جلوگیری از تداخل دادههای رد و بدل شده در یک شبکه یا اینترنت است.
برای درک بهتر این تقیسم بندی، ارتباط بین دو شهر را فرض کنید که با چندین بزرگ راه (همه شرایط آنها شامل طول، پهنا و ... به جز نامشان را یکی در نظر بگیرید) به هم وصل شده باشد و در انتهای هر یک از این بزرگ راهها (مسیر مجازی) یک نفر ایستاده باشد. درصورتی که فرد Y (پاکت داده) بخواهد از مبداء به مقصد برود، میتواند از همه این مسیرها راهش را بپیماید. درست است که فرد به مقصد رسیده اما درصورتی که بخواهد نفر X (مسیر دادهها به ISP مشخص) را که در انتهای یکی از این مسیرها ایستاده را ببیند، باید درست از همان مسیر حرکتش را انجام دهد که از قبل تعیین شده است (توسط ISP).
خود مسیر مجازی (VP) نیز به چندین کانال تقسیم میشود که به آن VC میگویند. VC مخفف عبارت "Virtual Channel" به معنای "کانال مجازی" است. کانالهای مجازی موجود در یک مسیر مجازی، مقصد نهایی را مشخص میکنند. با استفاده از مسیر مجازی و کانال مجازی، پاکتهای داده دقیقاً به جایی خواهد رسید که انتظار داشتیم. به همین دلیل، ISPها معمولاً دارای VC یا VP جداگانه از یکدیگر هستند مگر آن که همه آنها از یک نقطه مشترک (مثلاً مرکز اصلی مخابرات) دادههای خود را رد و بدل کنند چون در غیر این صورت، دادهها ممکن است به اشتباه ارسال شده و به مقصد برسند.
برای درک بهتر VC، همان مثال قبلی را فرض کنید با این تفاوت که در بزرگ را (VP) توسط خطوطی به چندین لاین (VC) تقسیم شده است. حال فرض کنید در یک مسیر مشخص، در انتهای هر باند، یک نفر (مقصد اصلی دادهها به یک ISP مشخص) ایستاده باشد. با این شرط که نتوانیم باندمان را در طول مسیر عوض کنیم، باید درست از همان مسیری حرکتمان را شروع کنیم که از قبل مشخص شده باشد (توسط ISP) تا به فرد مورد نظر برسیم.
شرکتهای ارائه دهنده خدمات اینترنتی (ISP) در ایران، VCI و VPI های زیر را برای دسترسی تعریف کرده اند.
توجه کنید که این لیست از وبسایت Hadiran.ir برداشته شده و ممکن است دارای اشکالاتی باشد. درصورت مشاهده هر گونه اشکال در این لیست، لطفاً از طریق قسمت تماس با ما یا بخش نظرات این مطلب اقدام کنید. همچنین میتوانید شماره VPI و VCI را از ISP خود پرسیده و همراه با نام ISP و استان خود، آن را در بخش نظرات ارسال کنید.
نام شرکت ISP |
مقدار VPI |
مقدار VCI |
استان (ها) |
مخابرات | ۰ | ۳۵ | در اکثر شهرها |
آسیاتک | ۰ | ۳۵ | |
پارس آنلاین | ۰ | ۳۵ | تهران |
شاتل | ۰ | ۳۵ | |
صبانت | ۰ | ۳۵ | |
های وب | ۰ | ۳۵ | |
پارس آنلاین | ۰ | ۵۹ | در اکثر شهرها |
مخابرات | ۰ | ۳۳ | آذربایجان شرقی |
همارا سیستم | ۰ | ۳۳ | آذربایجان شرقی |
عصر تله کام | ۸ | ۳۵ | |
پیشگامان | ۸ | ۸۱ |
با سلام خدمت کاربران عزیز گروه کامپیوتر دانشگاه آزاد:
امروز با آموزش و دانلود برنامه AFWall در خدمت شما هستیم تا شما را با این برنامه اندرویدی و امکاناتش آشنا کنیم :
تا حالا با مشکل داده اینترنتی مواجه شدین زمانایی که خواستیم حجم بسته ای که از اپراتور ها گرفتین زیاد از دست ندین این برنامه برای اینکه هر برنامه ای که شما خواستین و اجازه شو دادین فقط از حجم شما برای اتصال به اینترنت استفاده کنه .
بسته های اینترنتی فیمت های خوبی دارن اما همونجور که آندروید کلا سیستم عامل خود سریع هست و هزار تا نرم افزار پس زمینه باز نگه میداره توی مصرف اینترنت هم همینطوریه . یهو میبینی یه چیزی بدون این که اطلاع بده داره آپدیت میشه و پول شما رو هدر میده. راه حل این مشکل استفاده از فایروال آندروید هستش که البته از اسمش نترسید . منظور نرم افزاریه که اجازه ی مصرف دیتا یا اینترنت رو برای برنامه های مختلف مشخص میکنه … یعنی میشه کاری کرد که شما یه بسته ۲۰۰ مگی رو فقط و فقط به وایبر اختصاص بدی و راحت یک ماه تمام از بسته خودت استفاده کنی
روش کار بصورت زیر هست :
برنامه نیازمند روت هستش . بعد از باز کردن برنامه و دادن دسترسی روت با همچین شکلی رو به رو میشید که یه لیستی از هر چی رو گوشی نصبه بهتون نشون میده .. جلوی آیکون هر نرم افزار سه نوع تیک وجود داره . نوع اول که روش نوشته LAN رو کاری نداریم . نوع دوم مربوط به اینترنت WIFI هستش و نوع سوم هم مربوط به اینترنت سیم کارت ..
خب همونجوری که تو تصویر بالا مشاهده میکنین من برای اینترنت WIFI تیک تمام برنامه ها رو روشن کردم که شما هم باید اینکارو کنین تا وقتی به اینترنت ADSL وصلین عملکرد گوشی دچار اشکال نشه و استفاده عادی بشه ازش کرد … دقت کنین وقتی این فایروال رو فعال کنین اینترنت WIFI رو هم تحت تاثیر میذاره پس حواستون باشه حتما این تیک رو بزنید …
اما توی قسمت اینترنت موبایل فقطو فقط برنامه هایی که نیاز دارین رو تیک بزنید . هر نرم افزاری تیک بخوره یعنی اجازه استفاده از اینترنت رو داره … برای مثال من فقط نرم افزار های ارتباطیمو اجازه دادم که از اینترنت استفاده کنن .. دو تا مرورگر هم برای مواقع ضروری گذاشتم باشه که اگه یه وقت لازمم شد نیاز نباشه بیام داخل برنامه و تنظیمات دوباره انجام بدم … شما بسته به نیاز خودتون هر نرم افزاری که میخواین رو تیک بزنید (اگه از اینترنت همراه واقعا در حد اینترنت همراه استفاده میکنین یعنی فقط واسه وقتی که خونه نیستین و بیرونن و اونم فقط برای اینکه در دسترس باشین نه اینکه سایت گردی و .. کنین پس فقط تیک همین نرم افزارهای ارتباطی رو روشن بذارین اینجوری راحت با ۲۰۰ مگ یه ماه رو جواب میده البته به ظرطی که کلیپ و .. نفرستید توی وایبر و امثال وایبر )
اما کار تموم نشده هنوز مرحله اصلی مونده !! شما بعد اینکه تیک برنامه های مورد نظرتون رو زدین نیاز به دو کار دیگه دارین . قدم اول ذخیره کردن تغییراتیه که در تیک ها دادین و قدم دوم روشن کردن فایروال
به عکس زیر نگاه کنین
بعد از زدن تیک ها روی منو یا همون سه نقطه کلیک کنید و بعد از دیدن این منو اول SAVE و بعد ENABLE رو بزنید .. تمام :)
حالا برای مثال وقتی به اینترنت سیم کارت وصلین نرم افزار بازار ( که تیک نخورده) رو باز کنید میبینید که ارور میده . اما وایبر رو باز کنین راحت پی ام میره . با این روش مصرف دیتا فقط و فقط به نرم افزارهای مورد نظرتون محدود میشه . عالیه نه ؟ :)
با نظراتتون منه نویسنده و گروه رو حمایت کنین مرسی
دانلود اخرین ورژن اندرویدی آ اف وال
حجم: 3.59 مگابایت
همانطور که دیدید یک زمانی اگه یادتون باشه هزاران بار تبلیغات می شد بچه هاتون و بیارید مرکز و تست بینایی بدن با این روش لازم نیست کلی الاف بشین تو مطب دنبال ویزیت باشین و پول کلان به جیب بعضیا که پزشکی رو با تجارت اشتباه گرفتن بریزید .
کافیه به سایتی که اعلام کردیم برید و به آسونی تست بدین http://www.didsanj.com/
پس متوجه می شید که اگه یک پزشکی تو یک جایی تخصص داشته باشه و برنامه نویسی و یا یک مغز متفکر کامپیوتری بتونه ایده ای بده که مردم راحت بشن فقط از دست یک برنامه نویس و یک مهندس کامپیوتر بر میاد.
فکر کنید برای درمان سرطان که هزار تا عکس می ندازن هر دکتری بری یک عکس جدید می خواد و پولشم که حالا یک طرف برنامه ای بسازن که عکس رو اسکن کنی بدی به کامپیوتر و به آسونی بگه مشکل از کجاست این یعنی محشر این یعنی راحتی بیماران
ان شاء الله مهندسان علم هوش مصنوعی کشور عزیمان ایران اختراعاتی به ثبت برسانند که مردم صد البته شهر ها که ترافیک و .... واقعا آسیب می زنه بهشون دیگه ترافیک نکشین
به امید پژوهش های دانشجویان و اساتید رشته کامپیوتر و صد البته اختراعات
ادامه مطـــلب در منبع...
طبق معمول برنامه های مبتنی بر دیتابیس MySQL، اولین گام ما ایجاد و تعریف ساختار پایگاه داده است که در اینجا با توجه به نیازمان ابتدا از طریق برنامه phpMyAdmin یا با استفاده از کدهای PHP، دیتابیس download را می سازیم (در این آموزش فرض بر این است که از طریق برنامه phpMyAdmin پایگاه داده را ساخته اید)، سپس کدهای زیر را (در صورت نیاز پس از اعمال تنظیمات اتصال) در دایرکتوری فرضی time-limit-download و با نام table_create.php در ریشه هاست یا در سرور مجازی اجرا می کنیم (باید این دایرکتوری را در فولدر www یا public_html و فایل را داخل آن داشته باشید).
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>وبگو | ساخت جدول دانلود مدت دار فایل</title>
<!-- http://webgoo.ir -->
<style type="text/css">
body{
font-family:Tahoma, Geneva, sans-serif;
font-size:12px;
direction:rtl;
}
.ltr{
direction:ltr;
}
</style>
</head>
<body>
<?php
@$con = mysqli_connect('localhost', 'root', '', 'download');
//خطای اتصال
if(mysqli_connect_errno()){
echo 'اتصال با دیتابیس برقرار نشد:
<br>
<div class="ltr">
'.mysqli_connect_errno().' - '.mysqli_connect_error().'
</div>';
}
//اتصال برقرار است
else{
$query = mysqli_query($con, "CREATE TABLE file_storage(
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
client_ip VARCHAR(255),
original_name VARCHAR(255),
temp_name VARCHAR(255),
date_time BIGINT(20)) ENGINE=MyISAM");
if(mysqli_errno($con)){
echo 'بروز خطا در ایجاد جدول:
<br>
<div class="ltr">'.mysqli_errno($con).' - '.mysqli_error($con).'</div>';
}
else{
$link = 'http://'.$_SERVER["SERVER_NAME"].'/time-limit-download/test.zip';
echo 'جدول با موفقیت ساخته شد.
<br>
<div class="ltr">
<a href="'.$link.'">'.$link.'</a>
</div>';
}
}
$close = mysqli_close($con);
?>
</body>
</html>
لینک اجرای فایل باید مطابق با نمونه زیر باشد.
http://localhost/time-limit-download/table_create.php
نکته: در این آموزش از اکستنشن mysqli استفاده شده که می توانید مطابق سلیقه از PDO یا حتی اکستنش اولیه mysql استفاده کنید (استفاده از این اکستنشن به جزء در موارد آموزشی و پروژه های قدیمی، توصیه نمی شود).
توضیح:
با اجرای فایل بالا جدولی با نام فرضی file_storage در دیتابیس download ایجاد می شود که این جدول دارای ستون هایی است که در قسمت CREATE TABLE پرس و جوی بالا ملاحظه می کنید، در زیر به صورت مختصر و جهت آشنایی نقش ستون ها را بررسی می کنیم.
ستون id: این ستون به عنوان یک شماره یکتا معمولا در اکثر برنامه های مبتنی بر دیتابیس استفاده می شود (جهت تمایز و مدیریت بهتر داده های مختلف)، نوع این ستون INT است که در این حالت تا مرز 2147483647 ردیف قابل ایجاد است.
ستون client_ip: این ستون برای نگهداری IP کاربر است که در هنگام تطبیق اطلاعات لینک می تواند مورد استفاده قرار گیرد (استفاده از IP صرفا جهت نمونه است و در صورت نیاز می تواند استفاده نشود).
ستون original_name: این ستون نام اصلی فایل را به همراه پسوند آن نگهداری می کند.
ستون temp_name: این ستون برای نگهداری نام hash شده فایل است (hash به عبارت رمزی شده گفته می شود که در مورد استفاده ما به آن token نیز گفته می شود).
ستون date_time: این ستون جهت نگهداری تاریخ و زمان با نمونه فرمت 20140101121110 (ثانیه دقیقه ساعت روز ماه سال) است، از این عدد برای محاسبه مدت زمان انقضای لینک دانلود استفاده می کنیم.
پس از ایجاد دیتابیس و جدول، اکنون باید کدی داشته باشیم که آدرس های موقت دانلود مدت دار فایل را برایمان ایجاد کند، در واقع در این مرحله به طور مثال کاربر لینک فرضی زیر را از سرور درخواست می کند و در پاسخ، لینک مدت دار به او نشان داده می شود.
نمونه لینک درخواستی کاربر:
http://localhost/time-limit-download/test.zip
نمونه آدرس ایجاد شده برای دانلود مدت دار:
http://localhost/time-limit-download/gCvHGkaDADuTbmq3dQsdSXyZ/test.zip
لذا کدهای زیر را در فایلی با نام download_link.php در دایرکتوری time-limit-download درج کنید.
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>وبگو | ایجاد لینک دانلود مدت دار</title>
<!-- http://webgoo.ir -->
<style type="text/css">
body{
font-family:Tahoma, Geneva, sans-serif;
font-size:12px;
direction:rtl;
}
.ltr{
direction:ltr;
}
</style>
</head>
<body>
<?php
//تابعی برای ایجاد عبارت رندوم
function randomStr($length){
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$random_string = '';
for($i = 0; $i < $length; $i++){
$random_string .= $characters[rand(0, strlen($characters) - 1)];
}
return $random_string;
}
@$file = $_GET['file'];
if(!isset($file)){
echo 'مشکلی در دریافت اطلاعات فایل وجود دارد!';
}
else{
@$con = mysqli_connect('localhost', 'root', '', 'download');
//خطای اتصال
if(mysqli_connect_errno()){
echo 'اتصال با دیتابیس برقرار نشد:
<br>
<div class="ltr">
'.mysqli_connect_errno().' - '.mysqli_connect_error().'
</div>';
}
//اتصال برقرار است
else{
$temp = randomStr(24);
$date = date('YmdHis');
//مدت زمان اعتبار لینک به ثانیه
$time = date('YmdHis', time() - 60);
//ایمن سازی
$file = mysqli_real_escape_string($con, $file);
$ip = mysqli_real_escape_string($con, $_SERVER["SERVER_ADDR"]);
//حذف ردیف هایی که تاریخ اعتبار آنها گذشته است
$query = mysqli_query($con, "DELETE FROM file_storage WHERE date_time < '$time'");
//بررسی ip
$query = mysqli_query($con, "SELECT temp_name FROM file_storage WHERE client_ip = '$ip' AND original_name = '$file' LIMIT 1");
$count = mysqli_num_rows($query);
//استفاده از لینک موجود
if($count > 0){
while($row = mysqli_fetch_array($query)){
$temp = $row['temp_name'];
//آپدیت زمان
$update = mysqli_query($con, "UPDATE file_storage SET date_time = '$date' WHERE client_ip = '$ip' AND original_name = '$file' LIMIT 1");
}
}
//ایجاد لینک جدید
else{
$query = mysqli_query($con, "INSERT INTO file_storage(
client_ip, original_name, temp_name, date_time)
VALUES('".$ip."', '".$file."', '".$temp."', '".$date."')");
}
if(mysqli_errno($con)){
echo 'بروز خطا در ذخیره و ایجاد لینک دانلود:
<br><div class="ltr">'.mysqli_errno($con).' - '.mysqli_error($con).'</div>';
}
else{
$link = 'http://'.$_SERVER["SERVER_NAME"].'/time-limit-download/'.$temp.'/'.$file.'';
echo 'لینک دانلود با موفقیت ساخته شد:
<br>
<div class="ltr">
<a href="'.$link.'">'.$link.'</a>
</div>';
}
}
$close = mysqli_close($con);
}
?>
</body>
</html>
توضیح:
منطق به کار رفته در این قسمت خیلی پیچیده نیست، ابتدا فایل درخواستی کاربر از سرور از طریق متد GET دریافت شده و پیش از ایجاد لینک جدید، وجود IP کاربر و نام فایل مشابه در دیتابیس بررسی می شود، اگر فایل مشابهی با این IP در دیتابیس باشد، ضمن به روز رسانی مدت زمان اعتبار لینک، از اطلاعات موجود برای نمایش لینک دانلود مدت دار استفاده می شود، در غیر این صورت (یعنی اگر اطلاعاتی مطابق با IP و نام اصلی فایل در دیتابیس موجود نباشد)، لینکی با اطلاعات جدید ساخته و در دیتابیس نیز INSERT می شود.
نکته 1: ملاحظه می کنید که پیش از هر گونه اقدامی، ابتدا دستور حذف ردیف های تاریخ گذشته را اجرا کرده ایم.
نکته 2: مدت اعتبار لینک با تغییر مقادیر عددی در متغیر time قابل تغییر است، در این مثال ما از عدد 60 ثانیه استفاده کرده ایم که می توان مطابق نیاز آن را افزایش یا احیانا کاهش داد.
نکته 3: بررسی وجود IP و لینک موجود به این دلیل ممکن است ضروری باشد که معمولا علاوه بر مرورگر، برنامه های مدیریت دانلود مانند IDM نیز (هم زمان با مرورگر و به صورت مخفیانه) درخواستی به سرور ارسال می کنند که در این صورت برای یک فایل، دو ردیف و دو لینک دانلود مجزا در دیتابیس خواهیم داشت که قاعدتا یک مورد آن زائد است.
نکته 4: همان طور که پیش تر گفته شد، این برنامه صرفا یک الگو است و می توان بر اساس نیاز خود بخش هایی از آن را حذف یا مواردی اضافه نمود (منتها باید نسبت به انجام این مورد مسلط باشید!).
پس از ایجاد و ذخیره لینک دانلود مدت دار، قاعدتا این لینک باید توسط کاربر نهایی جهت دانلود فایل استفاده شود، لذا بدین منظور در دایرکتوری time-limit-download فولدر دیگری با نام file ساخته و درون آن فایلی با نام download_file.php می سازیم، کدهای این فایل وظیفه بررسی لینک درخواستی و در صورت تائید، ارسال فایل به مرورگر را به عهده خواهند داشت.
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>وبگو | دانلود فایل مدت دار</title>
<!-- http://webgoo.ir -->
<style type="text/css">
body{
font-family:Tahoma, Geneva, sans-serif;
font-size:12px;
direction:rtl;
}
.ltr{
direction:ltr;
}
</style>
</head>
<body>
<?php
@$token = $_GET['token'];
@$file = $_GET['file'];
if(!isset($file) || !isset($token)){
echo 'مشکلی در دریافت اطلاعات فایل وجود دارد!';
}
else{
@$con = mysqli_connect('localhost', 'root', '', 'download');
//خطای اتصال
if(mysqli_connect_errno()){
echo 'اتصال با دیتابیس برقرار نشد:
<br>
<div class="ltr">
'.mysqli_connect_errno().' - '.mysqli_connect_error().'
</div>';
}
//اتصال برقرار است
else{
$date = date('YmdHis');
//مدت زمان اعتبار لینک به ثانیه
$time = date('YmdHis', time() - 60);
//ایمن سازی
$token = mysqli_real_escape_string($con, $token);
$file = mysqli_real_escape_string($con, $file);
//حذف ردیف هایی که تاریخ اعتبار آنها گذشته است
$query = mysqli_query($con, "DELETE FROM file_storage WHERE date_time < '$time'");
//بررسی اطلاعات فایل درخواستی کاربر با سرور
$query = mysqli_query($con, "SELECT temp_name FROM file_storage WHERE original_name = '$file' AND temp_name = '$token' LIMIT 1");
$count = mysqli_num_rows($query);
//اطلاعات فایل معتبر است
if($count > 0){
//تابع برای بدست آوردن پسوند فایل
function getExtension($file){
preg_match('/\.[^\.]+$/i', $file, $ext);
return $ext[0];
}
//نوع فایل
$file_type = NULL;
switch(getExtension($file_name)){
case 'zip':
$file_type = 'application/zip';
break;
case 'pdf':
$file_type = 'application/pdf';
break;
case 'jpg':
$file_type = 'image/jpeg';
break;
}
//ارسال فایل به مرورگر برای دانلود
$file_name = $file;
header('Content-Description: File Transfer');
//header('Content-Type: application/octet-stream');
header('Content-Type: '.$file_type);
header('Content-Disposition: attachment; filename='.$file_name);
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: '.filesize("$file_name"));
ob_clean();
flush();
readfile("$file_name");
}
//لینک فایل معتبر نیست یا فایل حذف شده
else{
echo 'فایل مورد نظر یافت نشد!';
}
}
$close = mysqli_close($con);
}
?>
</body>
</html>
توضیح:
عملکرد این کد به این صورت است که پارامتر hash یا همان token ارسالی از کاربر و همچنین نام حقیقی فایل را که از طریق لینک مدت دار دانلود دریافت شده با دیتابیس تطبیق داده و در صورتی که اطلاعات معتبر باشد، فایل موجود در دایرکتوری file را به مرورگر (یا هر واسط کاربری دیگر مانند برنامه های مدیریت دانلود) ارسال می کند.
در آخرین گام از ایجاد لینک دانلود مدت دار نیاز به دستورات htaccess زیر در ریشه سایت است تا بتوانیم آدرس های استاتیک (آدرس هایی که در آنها علامت ? نباشد) را ایجاد و استفاده کنیم، لذا بدین منظور اگر فایل htaccess. در ریشه سایت وجود دارد، کافی است دستورات جدید را در انتها اضافه کنید، اما اگر این فایل وجود ندارد باید آن را بسازید و کدها را در آن درج نمائید.
RewriteEngine on
RewriteRule time-limit-download/([^/]+)/([^/]+)(\.zip|\.pdf|\.jpg)$ /time-limit-download/file/download_file.php?token=$1&file=$2$3 [NC,L]
RewriteRule time-limit-download/([^/]+)(\.zip|\.pdf|\.jpg)$ /time-limit-download/download_link.php?file=$1$2 [NC,L]
دو دستور بالا به ترتیب برای دریافت لینک مدت دار (token و نام اصلی فایل) و لینک عادی فایل (بدون token) کاربرد دارد.
نکته: اگر از فعال بودن Rewrite Engine در سرور مجازی خود مطمئن نیستید، لطفا در این خصوص در وب جستجو کنید.
با سلام خدمت کاربران عزیز گروه کامپیوتر دانشگاه آزاد در خدمتتون هستیم با اموزش کار با زمان و تاریخ در پی اچ پی
امیدوارم این سری آموزش مورد توجه شما دوستان عزیز قرار بگیره
تاریخ و زمان چیزهایی هستند که ما به طور زیادی با آن ها هر روز سر و کار داریم و در برنامه نویسی هم به درد ما می خورند. php برای ما توابعی را آماده کرده که می توانیم با استفاده از آن ها کارهای زیادی را انجام دهیم. اصلی ترین تابع برای تاریخ و زمان، تابع date() می باشد که در ادامه به توضیح آن می پردازیم.
این تابع برای ساختن فرمت های مختلف تاریخ ویا زمان است. این تابع دو پارامتر دارد که یکی برای فرمت خروجی تاریخ (پارامتر format) و دیگری timestamp یا مهر زمانی می باشد. واردکردن پارامتر timestamp دلخواه می باشد و این پارامتر پایه و منباء اطلاعاتی که پارامتر format دریافت می کند را تنظیم می کند (اگر ابهامی احساس می کنید در ادامه رفع خواهد شد). شکل کلی این تابع به صورت زیر است:
date(format, timestamp);
ارامتر format باید به شکل رشته ای وارد شود. این رشته باید دارای فرمت خاصی باشد که تنها مقادیر خاصی می تواند در آن قرار گیرد. در زیرجدولی را مشاهده می کنید که شامل این کاراکتر ها می باشد:
کاراکتر | توضیحات |
d | روز از ماه را به شکل عدد دورقمی نشان می دهد (از 01 تا 31). |
D | روز هفته را به صورت سه حرفی نشان می دهد. |
j | روز را به صورت عدد 1 یا دوحرفی بدون صفر پیش از آن نشان می دهد (از 1 تا 31). |
l | روز هفته را به صورت کامل نشان می دهد. |
N | روز هفته به شکل عددی نشان می دهد (از 1 تا 7). |
S | پسوند تاریخ را به شکل انگلیسی نشان می دهد (st، nd، rd یا th). |
w | روز هفته را به شکل عددی نشان می دهد (از 0 تا 6). |
z | روز از سال را نشان می دهد (از 0 تا 365). |
W | شماره هفته از سال را نشان می دهد. |
F | نام کامل ماه را نشان می دهد. |
m | شماره ماه به شکل عددی را همراه با صفر پیش از آن نشان می دهد (از 01 تا 12). |
M | نام ماه را به صورت سه حرفی نشان می دهد. |
n | شماره ماه بدون صفر پیش از آن را به شکل عددی نشان می دهد (از 1 تا 12). |
t | تعداد روزهای ماه را نشان می دهد. |
L | سال کبیسه را نشان می دهد (اگر سال کبیسه باشد 1 درغیر این صورت 0). |
o | شماره سال را به شکل عددی نشان می دهد. |
Y | شماره سال را به صورت 4 حرفی نشان می دهد. |
y | شماره سال را به صورت 2 حرفی نشان می دهد. |
a | am(قبل از ظهر) یا pm(بعد از ظهر) را با حروف کوچک نشان می دهد. |
A | Am یا PM را با حروف بزرگ نشان می دهد. |
g | ساعت را به صورت 12 ساعته و بدون صفر پیش از آن نشان می دهد (از 1 تا 12). |
G | ساعت را به صورت 24 ساعته و بدون صفر پیشین نشان می دهد (از 0 تا 23). |
h | ساعت را به صورت 12 ساعته و همراه با صفر پیشین نشان می دهد (از 01 تا 12). |
H | ساعت را به صورت 24 ساعته و همراه با صفر پیشین نشان می دهد (از 00 تا 23). |
i | دقیقه را همراه با صفر پیشین نشان می دهد (از 00 تا 59). |
s | ثانیه را همراه صفر پیشین نشان می دهد (از 00 تا 59). |
u | میکروثانبه را نشان می دهد. |
e | منطقه زمانی را نشان می دهد (مانند gmt یا utc). |
O | تفاوت زمانی با زمان گرینویچ را به ساعت نشان می دهد. |
P | تفاوت زمانی با گرینویچ را به ساعت و دقیقه نشان می دهد. |
همین که می بینید حروف کوچک و بزرگ مقادیر مختلفی را دارا هستند و باید در این مورد دقت لازم را به جا آورید.
این کاراکترها می توانند با یکدیگر ترکیب شوند و یک فرمت زمان یا تاریخ را بسازند. همچنین از کاراکترهای دیگری مانند ، – . و… برای جداسازی عددهای مختلف استفاده کرد.
مثال:
در این مثال تاریخ و زمان را بوسیله تابع date چاپ می کنیم:
<?php echo "Today is: ".date("Y/n/d")."<br/>";
echo "and time is: ".date("g:i:s a");
?>
date_default_timezone_set("Asia/Tehran");
<?php
date_defult_timezone_ser("asia/tehran"); echo "Today is: ".date("Y/n/d")."<br/>";
echo "and time is: ".date("g:i:s a");
?>
با سلام خدمت کاربران عزیز گروه کامپیوتر دانشگاه آزاد امروز با آموزش کاربردی در خدمت شما هستیم که دیگه مشکل ارسال برنامه های دانلود شده و خریداری شده از بازار رو نداشته باشین
این مطلب اختصاصی است لطفا با ذکر منبع به اشتراک بگذارید :
در نسخههای قدیمی بازار برنامههای دانلود شده در مسیر زیر قرار میگرفتند :
sdcard > icm > bazaar > downloads
ولی در ورژن جدید اینگونه نیست و بعد از نصب برنامهها، فایل اصلی آنها حذف میشوند که میتوانید به این صورت عمل کنید : بعد از دانلود فایل بجای نصبه آن دکمه Home را بزنید و از نصب خارج شوید، به قسمت Android در حافظه گوشی یا مموی کارت رفته و سپس وارد پوشهی data و بعد از آن به دنبال پوشه ای به نام com.farsitel.bazaar بگردید، داخل شوید و نرمافزار را به جای دیگری انتقال دهید.
Android > Data > com.farsitel.bazaar > files
با سلام خدمت دوستان و کاربران عزیز با مطلبی جدید در خدمت شما دوست داران گروه کامپیوتر دانشگاه آزاد هستیم
امروز با آموزش " پست پازلی " یا به عبارتی " پست ادامه دار" در اینستگرام در خدمتتون هستیم
در این آموزش می توان عکسی مانند زیر در اینستاگرام ترتیب داد . . .
بصورت خلاصه وارد این بشیم که چطور می تونیم پست پازلی خود را در اینستا درست کنیم نکته این است که هر عکس اینستا در اندازه ی سایز زیر باید باشد :
width=459 و Height=457
پس برای اینکه ما یک عکس 3 تایی داشته باشیم مانند عکس بالا باید در فتوشاپ ابعادی به ابعاد
1377=3*width=459 و Height=457
پیکسل پروژه ای را ایجاد کنیم .
ما برای راحتی کار فایل فتوشاپ را در آخر مطلب برای دانلود گذاشته ایم.
سپس کافیست یک عکس را داخل پروژه ایمپورت کنید و ابعاد آن را Fit اندازه ی بالا قرار دهید
سپس فایل خود را با پسوند Jpg یا Png ذخیره کنید .
سپس عکس را به موبایل خود انتقال دهید از طریق Usb یا مموری و یا Bluetooch
سپی به گالری موبایل اندروید خود رفته و عکس مورد نظر را باز کنید سپس گزینه اشتراک گذاری را کلیک کرده و اینستاگرام را انتخاب فرمائید
بعد از انتخاب قسمت تنظیمات یا برش اینستاگرام CROP بعد از چند ثانیه تصویر شما رو لود کرده و از اینجاست که قسمت اصلی مطلبمان شروع م شود
چون عکس های گذشته به ترتیب چینش به سمت راست شیفت می شوند پس کافیست حین کراپ بدون زوم یا آن زوم قسمت سمت راست رفته و کاملا به دیواره سمت راست عکس بچسبید و عکس اول را سند کنید
سپس دوباره به گالری رفته و اشتراک گذاری اینستاگرام و اینبار قسمت بعد از قسمت سمت راست یعنی وسط عکس را انتخاب Crop کرده و آن را ارسال نمائید و سپس آخرین مرحله کاملا به دیواره سمت چپ چسبیده و عکس سوم را ارسال فرمائید
دانلود فایل فتوشاپ با فرمت Psd
رمز فایل : unitazad.ir دقت در وارد کردن حروف (تمامی حروف با حروف کوچک انگلیسی می باشد)
با تشکر از شما دوستان عزیز ببخشید چند دقیقه ای وقت شما رو گرفتیم اشکالی داشتید در بخش نظرات حتما درج فرمائید ممنونیم
ادامه مطـــلب در منبع...Remote debugging همیشه یکی از چالش های طراحی صفحات وب برای گوشی های هوشمند، تست و خطایابی آنها درون محیط واقعی آنها است. برای این مشکل، راه حل هایی البته وجود دارد. سایت های وجود دارند که عکسی از صفحه شما درون دستگاه های مختلف میدهند. همچنین پکیج هایی نیز برای زبان Node js نوشته شده است که میتوانید گوشی را به سیستم متصل کنید، که به این صورت کارتان را بسیار ساده تر میکنند. اما اگر بخواهیم از این هم ساده تر سایت ریسپانسیو را درون گوشی یا تبلتمان چک کنیم، چه راه حلی وجود دارد؟ راه حل استفاده از مرورگر گوگل کروم است. این مرورگر از نسخه 32 به بعد قابلیتی به نام Remote debugging را به خودش اضافه کرده است که در آن به راحتی میتوانید گوشی را به سیستم متصل کنید و همچنین میتوانید سایت باز شده درون گوشی را از طریق سیستم inspect کنید.
نسخه کروم در سیستم باید از ورژن 32 به بعد باشد
یک کابل برای متصل کردن گوشی یا تبلت به سیستم موجود باشد
و نسخه اندروید باید از ورژن 4.0 به بعد باشد
البته خود گوگل این نکته را هم گوشزد کرده است که نسخه کروم درون سیستم باید یک ورژن بالاتر از نسخه کروم درون گوشی یا تبلت باشد. البته استفاده از نسخه های هم ورژن نیز دارای احتمال خطای خیلی کمی هستند.
1. فعال کردن USB Debugging ابتدا به تنظیمات اندروید رفته و به قسمت Developer options وارد شوید. در این قسمت، USB debugging را فعال کنید و پیغام هشدار آن را نیز تایید کنید.
اگر قسمت Developer options برای شما قابل مشاهده نیست در تنظیمات اندروید به قسمت About phone رفته و بر روی گزینه Build number هفت بار تپ (کلیک) کنید تا این قسمت در تنظیمات اندروید قابل مشاهده شود.
![]() |
![]() |
![]() |
![]() |
حالا با استفاده از کابل مناسب، گوشی را به سیستم متصل کنید. اگر بر روی سیستم عامل ویندوز کار میکنید، مطمئن شوید که درایور مناسب گوشی، نصب شده باشد.
یک برنامه کروم را درون گوشی خود اجرا کنید.
در مرورگر کروم سیستم به صفحه chrome://inspect رفته و گزینه Discover USB devices را فعال کنید.
بعد از فعال کردن این گزینه احتمالا در گوشی شما یک پیغام مبنی بر اجازه دسترسی صادر میشود که شما آن پیغام را تایید کنید.
خب در صفحه chrome://inspect تمام دستگاه های متصل شده به سیستم و تب های اجرا شده در کروم دستگاه ها را نشان میدهد، که شما نیز الان باید اطلاعاتی مشابه عکس زیر را مشاهده کنید.
حالا به راحتی میتوانید تب های اجرا شده درون گوشی های هوشمندتان را از طریق سیستم، inspect کنید که اینکار با کلیک بر روی عبارت inspect انجام میشود.
با اینکار یک صفحه Developer tools کروم برای شما باز میشود که تمام ویژگی های یک Developer tools معمولی را دارد و به راحتی میتوانید به inspect کردن بپردازید.
نکته : اگر در پنجره باز شده با خطا مواجه شدید (احتمالا خطای تحریم گوگل)، باید با IP غیر ایرانی صفحه inspect را باز کنید.
ادامه مطـــلب در منبع...با سلام خدمت کاربران عزیز گروه کامپیوتر دانشگاه آزاد
با توجه به درخواست های فراوان کاربران اندروید مبنی بر آموزش نصب کردن چندین باره یک برنامه در اندروید بر آن شدیم این آموزش را تقدیم کاربران عزیزمان کنیم تآ اخر این مطلب ما را همراهی کنید ممنونیم
برنامه Apk Editor را نصب کنید . . .
برای نصب دو فایل وجود دارد که فایل شماره 1 زیر را با حجم 238کیلو بایت دانلود کنید
بعد از نصب فایل زیر را هم روی آن برنامه نصب کنید تا برنامه ثبت و ریجستر شود در صورتی که موبایلتان پیغامی داد که آیا مایلید روی برنامه نصبی قبلی ذخیره شود بله را بزنید.
فایل Apk برنامه مورد نظرتون را در مموری کارت کپی کنید
برنامه Apk Editor را اجرا کنید
و به مسیری که فایل را کپی کردید بروید.
روی فایل مورد نظر چند لحظه لمس کنید تا منو باز بشه
و از گزینه های موجود Clone را انتخاب کنید