منتدى استراحات زايد

منتدى استراحات زايد (http://vb.ma7room.com/index.php)
-   منتدى أخبار المواقع والمنتديات العربية والأجنبية (http://vb.ma7room.com/forumdisplay.php?f=183)
-   -   [ درس ] تحويل الرابط من رقم إلى حرف بطريقة احترافية دون تغير id من انتجر إلى استرنق (http://vb.ma7room.com/showthread.php?t=1410518)

محروم.كوم 03-10-2014 09:50 PM

[ درس ] تحويل الرابط من رقم إلى حرف بطريقة احترافية دون تغير id من انتجر إلى استرنق
 
السلام عليكم ورحمة الله وبركاتة

درس php

اليوم سنتعلم فكرة برمجية سهلة لتغير ارقام المواضيع الى حروف
مثال 1 = n و 2 = r

ليكون الرابط عند الاستعلام

show.php?id=n
او
show.php?id=nr

او
show.php?id=xcz

حسب اختيارك للحروف
مع حماية الاستعلام بحيث لا يستعلم إلا عن ارقام فقط

شرح الفكرة سنقوم ببرمجة دالة تقوم بتحويل n إلى 1

ثم نقوم بالاستعلام عن رقم 1

نبد بسم الله

اولا سنقوم ببرمجة دالة لتحويل الارقام المستخرجة إلى حروف

رمز PHP:
function str_ir($val){
$val = intval($val);
$val = str_ireplace(0,'t',$val);
$val = str_ireplace(1,'n',$val);

$val = str_ireplace(2,'r',$val);
$val = str_ireplace(3,'s',$val);
$val = str_ireplace(4,'x',$val);
$val = str_ireplace(5,'z',$val);
$val = str_ireplace(6,'c',$val);
$val = str_ireplace(7,'b',$val);
$val = str_ireplace(8,'o',$val);
$val = str_ireplace(9,'e',$val);
return
$val;
}


ونقوم بستخراج جميع المواضيع او الاخبار

رمز PHP:
$q = $db->query("select * from news");
while (
$r = $q->fetch_array(MYSQLI_ASSOC)){


ثم نقوم بجلب الايدي ونقوم بطتبيق الدالة علية

رمز PHP:
$id = str_ir($r['id']);


الان اي موضوع يتم جلب الايدي الخاص به رقم بعد تطبيق الدالة علية سيتم تحويل الارقام إلى حروف

نكمل نجلب عنوان الخبر
رمز PHP:
$tit = $r['title'];


الان نطبع عنوان الخبر في رابط يتوجه إلى صفحة show.php

رمز PHP:
echo "title - $tit";


نغلق الوايل
رمز PHP:
}


-------------- انتهينا من ملف index

الان نتوجة لملف show.php
لنقوم بالاستعلام عن الرابط وجلب محتوى الخبر

نقوم اول شيء ببرمجة دالة تعكس القيم في الدالة السابقة

رمز PHP:
function str_ir2($val){

$val = str_ireplace('t',0,$val);
$val = str_ireplace('n',1,$val);
$val = str_ireplace('r',2,$val);
$val = str_ireplace('s',3,$val);
$val = str_ireplace('x',4,$val);
$val = str_ireplace('z',5,$val);
$val = str_ireplace('c',6,$val);
$val = str_ireplace('b',7,$val);
$val = str_ireplace('o',8,$val);
$val = str_ireplace('e',9,$val);
$val = intval($val);
return
$val;
}


لحظ اني قمت بستبدال الحروف إلى ارقام
عكس الدالة الاولى إللي فيها قمت بستبدال الارقام بحروف
ايضا قمت بوضع دالة intval اسفل الكودفي الدالة هذا معناه بعد ماتستبدل الحروب الموجودة طبق لي دالة الحماية لكي لا يقبل إلا رقم

راح اكمل الموضوع واي مشاكل في الفهم ساكون متابع الموضوع معاكم

بعد ماقمنا بعمل الدالة الان نجلب الايدي عن طريق دالة get مع تشغيل الفانكشن

رمز PHP:
$g = str_ir2($_GET['id']);


ثم نقوم بالاستعلام عن الخبر
رمز PHP:
$q = $db->query("select * from news where id='$g'");


نتاكد ان القيمة صحيحة وانه يوجد خبر لنفس الايدي المجلوب اذا كان موجود فعلا نكمل
رمز PHP:
if($q->num_rows != 0){


رمز PHP:
$r = $q->fetch_array(MYSQLI_ASSOC);

echo
$tit = $r['newss'];


اذا كان الخبر غير موجود نطبع

رمز PHP:
}else{
echo
"error url not found";
}


بكذا يكون الدرس انتهى
الملفات مرفقة + قاعدة البيانات ترميزها utf8_general_ci
اي استفسار لا تتردد
تحياتي ودمتم بحفظ الرحمن

الملفات المرفقة http://www.traidnt.net/vb/images/attach/zip.gif geturl.zip (2.2 كيلوبايت)


الساعة الآن 03:47 AM

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.5.2 TranZ By Almuhajir


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227