<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>EbNCaNa &#187; php</title>
	<atom:link href="http://ebncana.wordpress.com/category/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://ebncana.wordpress.com</link>
	<description>العالم الآخر</description>
	<lastBuildDate>Fri, 25 Sep 2009 17:21:39 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>ar</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='ebncana.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/b1ac91b6316ae1a458487469220ef2ab?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>EbNCaNa &#187; php</title>
		<link>http://ebncana.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://ebncana.wordpress.com/osd.xml" title="EbNCaNa" />
		<item>
		<title>[درس] قائمة بريدية بأسهل الطرق , بواسطة php</title>
		<link>http://ebncana.wordpress.com/2009/09/14/%d8%af%d8%b1%d8%b3-%d9%82%d8%a7%d8%a6%d9%85%d8%a9-%d8%a8%d8%b1%d9%8a%d8%af%d9%8a%d8%a9-%d8%a8%d8%a3%d8%b3%d9%87%d9%84-%d8%a7%d9%84%d8%b7%d8%b1%d9%82-%d8%a8%d9%88%d8%a7%d8%b3%d8%b7%d8%a9-php/</link>
		<comments>http://ebncana.wordpress.com/2009/09/14/%d8%af%d8%b1%d8%b3-%d9%82%d8%a7%d8%a6%d9%85%d8%a9-%d8%a8%d8%b1%d9%8a%d8%af%d9%8a%d8%a9-%d8%a8%d8%a3%d8%b3%d9%87%d9%84-%d8%a7%d9%84%d8%b7%d8%b1%d9%82-%d8%a8%d9%88%d8%a7%d8%b3%d8%b7%d8%a9-php/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 18:18:36 +0000</pubDate>
		<dc:creator>EbNCaNa</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[EbNCaNa]]></category>
		<category><![CDATA[EbNCaNa.com]]></category>
		<category><![CDATA[فلسطين]]></category>
		<category><![CDATA[فلسطين 48]]></category>
		<category><![CDATA[فيها]]></category>
		<category><![CDATA[قانا الجليل]]></category>
		<category><![CDATA[قائمة]]></category>
		<category><![CDATA[كفركنا]]></category>
		<category><![CDATA[كثيرة]]></category>
		<category><![CDATA[لا]]></category>
		<category><![CDATA[لتلبية]]></category>
		<category><![CDATA[من]]></category>
		<category><![CDATA[مواقعنا]]></category>
		<category><![CDATA[ماذا]]></category>
		<category><![CDATA[معقدا]]></category>
		<category><![CDATA[معين]]></category>
		<category><![CDATA[نفعل]]></category>
		<category><![CDATA[نبحث]]></category>
		<category><![CDATA[نجده]]></category>
		<category><![CDATA[نريده]]></category>
		<category><![CDATA[نعود]]></category>
		<category><![CDATA[هي]]></category>
		<category><![CDATA[ولكن]]></category>
		<category><![CDATA[ولا]]></category>
		<category><![CDATA[ونقوم]]></category>
		<category><![CDATA[وسكربتات]]></category>
		<category><![CDATA[يكون]]></category>
		<category><![CDATA[؟]]></category>
		<category><![CDATA[الفكرة]]></category>
		<category><![CDATA[الانترنت]]></category>
		<category><![CDATA[الاحيان]]></category>
		<category><![CDATA[التي]]></category>
		<category><![CDATA[الطرق]]></category>
		<category><![CDATA[ان]]></category>
		<category><![CDATA[او]]></category>
		<category><![CDATA[ابن قانا]]></category>
		<category><![CDATA[بواسطة]]></category>
		<category><![CDATA[بأسهل]]></category>
		<category><![CDATA[بحيث]]></category>
		<category><![CDATA[برمجيات]]></category>
		<category><![CDATA[بريدية]]></category>
		<category><![CDATA[بسحب]]></category>
		<category><![CDATA[حاجة]]></category>
		<category><![CDATA[درس]]></category>
		<category><![CDATA[رؤوسنا]]></category>
		<category><![CDATA[سكربت]]></category>
		<category><![CDATA[شبكة]]></category>
		<category><![CDATA[على]]></category>
		<category><![CDATA[عن]]></category>
		<category><![CDATA[عندما]]></category>
		<category><![CDATA[عرب 48]]></category>

		<guid isPermaLink="false">http://ebncana.wordpress.com/?p=474</guid>
		<description><![CDATA[السلام عليكم ورحمة الله وبركاته
كثيرة هي الاحيان التي نبحث فيها على برمجيات وسكربتات لتلبية حاجة مواقعنا على شبكة الانترنت , ولكن ماذا نفعل عندما نبحث عن سكربت معين ولا نجده ؟ او ان نجده ولكن يكون معقدا بحيث لا نعود نريده ونقوم بسحب الفكرة من رؤوسنا !! هذا الدرس للمستوى المتسوط في لغة البرمجة php [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ebncana.wordpress.com&blog=3685320&post=474&subd=ebncana&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>السلام عليكم ورحمة الله وبركاته<a href="http://ebncana.files.wordpress.com/2009/09/86.png" target="_blank"><img class="alignleft size-full wp-image-481" style="border:0 none;" title="86" src="http://ebncana.files.wordpress.com/2009/09/86.png?w=194&#038;h=194" alt="86" width="194" height="194" /></a></p>
<p>كثيرة هي الاحيان التي نبحث فيها على برمجيات وسكربتات لتلبية حاجة مواقعنا على شبكة الانترنت , ولكن ماذا نفعل عندما نبحث عن سكربت معين ولا نجده ؟ او ان نجده ولكن يكون معقدا بحيث لا نعود نريده ونقوم بسحب الفكرة من رؤوسنا !! <span style="color:#ff0000;">هذا الدرس للمستوى المتسوط في لغة البرمجة php </span>, ولكني سأحاول تبسيط الشرح لكي يستفيد الجميع باذن الله .</p>
<p><span style="color:#ff0000;">هكذا بالضبط حدث معي</span> عندما اردت ان ابحث عن سكربت قائمة بريدية لاقوم بتركيبه لاحد الزبائن ووجدت السكربت ولكني وجدته معقدا جدا ولا يحتاج لكل هذه الخصائص والازرار والمتغيرات , لذلك , قمت بعمل برمجية صغيرة تقوم محل القائمة البريدية وهي فكرة بسيطة جدا ولكنها تفي بالغرض تماما .</p>
<p><span id="more-474"></span></p>
<p><span style="color:#0000ff;">الفكرة</span> هي باختصار عبارة عن تخزين عناوين البريد الالكتروني في ملف نصي في الموقع , عند كل اضافة لعنوان جديد من قبل مستخدم جديد , فان الملف يتغير ويضيف البريد الاخير لقائمة العناوين التي يحويها الاخير , قد يقول البعض ما الفائدة من ذلك ؟؟ , اقول بان هذه الطريقة تساعد على ارسال الرسائل لكل منتسبي القائمة البريدية من خلال البريد الشخصي لمدير الموقع , ان كان في هوتميل او ياهو او بريد جوجل , وهنا مشكلة اخرى تاتي بان كل من هذه الخدمات البريدية يمكن فيها ارسال رسالة ل50 شخص فقط دفعة واحدة وليس اكثر من ذلك ( هذه المعلومة صحيحة بحال استعمال بريد جوجل ) , ايضا لهذه المشكلة يوجد حل , فصاحب الموقع يستطيع ان يقسم الملف الى اكثر من مجموعة , بمعنى انه يستطيع ان يفصل كل 50 عنوان بريد بواسطة فاصلة وهي عبارة عن سطرين للأسفل , بهذه الطريقة اذا كان الملف يحوي 150 عنوان بريد , فان الملف سيتقسم الى 3 مجموعات , في كل مجموعة 50 بريد ويفصل كل عنوان واخر فاصلة , لتكون جاهزة تماما للاستعمال عند ارسالها بالبريد ويفصل كل مجموعة عن الاخرى سطرين لضمان عدم تكرار الارسال لنفس المجموعة .</p>
<p><span style="color:#333399;">في البداية نقوم بكتابة كود html الذي سيقوم باستقبال عنوان البريد الالكتروني من صاحبه ثم يرسله الى الكود البرمجي للمعالجة :</span></p>
<div style="border:1px solid #999999;margin-bottom:10px;float:right;width:98%;direction:ltr;background-color:#f2f2f2;text-align:left;padding:2px;">
<h5><span style="color:#ff0000;">HTML Code :</span></h5>
<p>&lt;form id=&#8221;mlist&#8221; method=&#8221;post&#8221; action=&#8221;mailing-list.php&#8221;&gt;<br />
البريد الالكتروني<br />
&lt;input name=&#8221;email&#8221; type=&#8221;text&#8221; dir=&#8221;rtl&#8221; /&gt;<br />
&lt;p&gt;&lt;input name=&#8221;Submit&#8221; type=&#8221;submit&#8221; value=&#8221;اشترك الآن&#8221; /&gt;&lt;/p&gt;<br />
&lt;/form&gt;</p></div>
<p>طبعا يمكنكم تغير تنسيق هذا الفورم حسب رغبتكم  , واذا لاحظتم في بداية الكود فان المعطيات ستذهب الى الصفحة mailing-list.php وهذا يعني اننا يجب ان نقوم بأنشاء صفحة php وتسميتها mailing-list.php لكي نضع الكود التالي بداخلها بهدف المعالجة .</p>
<p><span style="color:#333399;">ثم نقوم بكتابة كود الصفحة البرمجية والتي ستقوم بمعالجة الطلب , في البداية نكتب الكود بدون شرح ثم ساضع رابط اسفل الكود لتحميل الملف البرمجي بصيغة php , سيحوي الملف الكود البرمجي والشرح وسيكون الشرح بكل سطر على شكل تعليق برمجي  :</span></p>
<div style="border:1px solid #999999;margin-bottom:10px;float:right;width:98%;direction:ltr;background-color:#f2f2f2;text-align:left;padding:2px;">
<h5><span style="color:#ff9900;">PHP Code :</span></h5>
<p>&lt;?php</p>
<p>//  This Code Wrote BY  : EbNCaNa     ebncana(@)hotmail.com</p>
<p>$group_num = 50;</p>
<p>if(isset($_POST["email"]) &amp;&amp; !empty($_POST["email"])){</p>
<p>$email = $_POST["email"];</p>
<p>$fcon = fopen(&#8216;mailing-list.txt&#8217;, &#8216;a+&#8217;);<br />
$text = @fread($fcon,filesize(&#8220;mailing-list.txt&#8221;));<br />
$ntext = explode(&#8220;,&#8221;,$text);<br />
$mailsnum = count($ntext);</p>
<p>foreach($ntext as $semail){<br />
if($email == $semail){<br />
echo &#8220;عذرا البريد الالكتروني الذي ادخلته موجود مسبقا في قاعدة البيانات&#8221;;<br />
$order = &#8220;stop&#8221;;<br />
}<br />
}</p>
<p>$mailsnum = $mailsnum-1;<br />
if($order !== &#8220;stop&#8221;){<br />
$numn = $mailsnum+1;<br />
if(is_int($numn/$group_num)){<br />
$writem = fwrite($fcon,&#8221;$email</p>
<p>,&#8221;);<br />
}else{<br />
$writem = fwrite($fcon,&#8221;$email,&#8221;);<br />
}<br />
if($writem){<br />
echo &#8220;شكرا لك , تمت اضافة بريدك الالكتروني الى قائمتنا البريدية بنجاح&#8221;;<br />
}<br />
}<br />
fclose($fcon);<br />
}else{<br />
echo &#8220;الرجاء قم بادخال البريد الالكتروني&#8221;;<br />
}</p>
<p>?&gt;</p></div>
<p><span style="color:#ff0000;">طبعا كما تكلمنا مسبقا , يمكنكم تحميل الملف البرمجي الاصلي والذي يحوي الشرح الوافي للكود , اضغط على الصورة في الاسفل لتحميل الملف .</span></p>
<p><a href="http://www.ebncana.com/upload/filez/af1a7fc4cb.html" target="_blank"><img src="http://www.ebncana.com/upload/extension/zip.gif" border="0" alt="مركز ابن قانا لتحميل الملفات - CanaUpload" /></a></p>
<p>طبعا كما عهدناكم دائما , فهذا الكود لن يبقى بأيديكم كمان هو , وضعنا الزبدة كالعادة , اذ يمكن التطوير على هذا الكود ليصبح فعال اكثر بكثير مما هو عليه الان , قمنا بتطبيق فكرة حفظ العناوين بداخل ملف نصي , الان يمكنك التفنن في الكود وتحسينه , مثلا يمكننا اضافة حقل الى كود الـ html لتخزين الاسم بداخله , يمكن ان نقوم بادخال بريد الشخص واسمه الكامل لكي نرسل الرسالة باسمه , يمكننا ايضا عمل قائمة منسدلة فيها خيارين , واحد لاضافة البريد وآخر لازالة البريد بحالة كان موجود في القائمة ورغب صاحبه بحذفه , بسهولة يمكن تطبيق هذه الامور , وانا سأترك لكم المجال للأبداع ,<span style="color:#008000;"> وكما قلنا ونقول دائما , نرجوا من الجميع عدم كتمان ما يملكونه في جعبتهم من علم , فكما زكاة المال , هناك زكاة للعلم , واقل القليل هو ان نساهم بشي للنهوض بامتن</span>ا .</p>
<p>الى اللقاء في درس آخر .</p>
<p><span style="color:#0000ff;">باحترام : اخوكم EbNCaNa</span></p>
<p><span style="color:#0000ff;"><span style="color:#ffffff;">-</span><br />
</span></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ebncana.wordpress.com/474/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ebncana.wordpress.com/474/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ebncana.wordpress.com/474/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ebncana.wordpress.com/474/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ebncana.wordpress.com/474/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ebncana.wordpress.com/474/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ebncana.wordpress.com/474/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ebncana.wordpress.com/474/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ebncana.wordpress.com/474/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ebncana.wordpress.com/474/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ebncana.wordpress.com&blog=3685320&post=474&subd=ebncana&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ebncana.wordpress.com/2009/09/14/%d8%af%d8%b1%d8%b3-%d9%82%d8%a7%d8%a6%d9%85%d8%a9-%d8%a8%d8%b1%d9%8a%d8%af%d9%8a%d8%a9-%d8%a8%d8%a3%d8%b3%d9%87%d9%84-%d8%a7%d9%84%d8%b7%d8%b1%d9%82-%d8%a8%d9%88%d8%a7%d8%b3%d8%b7%d8%a9-php/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/58457a05776d42c2f553bd153e6b184b?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">EbNCaNa</media:title>
		</media:content>

		<media:content url="http://ebncana.files.wordpress.com/2009/09/86.png" medium="image">
			<media:title type="html">86</media:title>
		</media:content>

		<media:content url="http://www.ebncana.com/upload/extension/zip.gif" medium="image">
			<media:title type="html">مركز ابن قانا لتحميل الملفات - CanaUpload</media:title>
		</media:content>
	</item>
		<item>
		<title>[درس] كيفية استخراج البيانات من خلاصات المواقع RSS / Atom Feed</title>
		<link>http://ebncana.wordpress.com/2009/07/12/%d8%af%d8%b1%d8%b3-%d9%83%d9%8a%d9%81%d9%8a%d8%a9-%d8%a7%d8%b3%d8%aa%d8%ae%d8%b1%d8%a7%d8%ac-%d8%a7%d9%84%d8%a8%d9%8a%d8%a7%d9%86%d8%a7%d8%aa-%d9%85%d9%86-%d8%ae%d9%84%d8%a7%d8%b5%d8%a7%d8%aa-%d8%a7/</link>
		<comments>http://ebncana.wordpress.com/2009/07/12/%d8%af%d8%b1%d8%b3-%d9%83%d9%8a%d9%81%d9%8a%d8%a9-%d8%a7%d8%b3%d8%aa%d8%ae%d8%b1%d8%a7%d8%ac-%d8%a7%d9%84%d8%a8%d9%8a%d8%a7%d9%86%d8%a7%d8%aa-%d9%85%d9%86-%d8%ae%d9%84%d8%a7%d8%b5%d8%a7%d8%aa-%d8%a7/#comments</comments>
		<pubDate>Sat, 11 Jul 2009 23:47:13 +0000</pubDate>
		<dc:creator>EbNCaNa</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[EbNCaNa]]></category>
		<category><![CDATA[ابن قانا]]></category>
		<category><![CDATA[كفركنا]]></category>
		<category><![CDATA[درس]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[EbNCaNa.com]]></category>
		<category><![CDATA[شرح]]></category>
		<category><![CDATA[برمجة]]></category>
		<category><![CDATA[كود]]></category>
		<category><![CDATA[البيانات]]></category>
		<category><![CDATA[كيفية]]></category>
		<category><![CDATA[من]]></category>
		<category><![CDATA[فلسطين]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[قانا الجليل]]></category>
		<category><![CDATA[to]]></category>
		<category><![CDATA[دالة]]></category>
		<category><![CDATA[داله]]></category>
		<category><![CDATA[برمجه]]></category>
		<category><![CDATA[بلغة]]></category>
		<category><![CDATA[برمجيه]]></category>
		<category><![CDATA[برامج]]></category>
		<category><![CDATA[حلقة تكرار]]></category>
		<category><![CDATA[بي اتش بي]]></category>
		<category><![CDATA[استخراج]]></category>
		<category><![CDATA[get]]></category>
		<category><![CDATA[from]]></category>
		<category><![CDATA[كيف]]></category>
		<category><![CDATA[موقع]]></category>
		<category><![CDATA[بشكل]]></category>
		<category><![CDATA[خلاصات]]></category>
		<category><![CDATA[المواقع]]></category>
		<category><![CDATA[RSS]]></category>
		<category><![CDATA[Atom]]></category>
		<category><![CDATA[Feed]]></category>
		<category><![CDATA[مبرجين]]></category>
		<category><![CDATA[خلاصة]]></category>
		<category><![CDATA[ار اس اس]]></category>
		<category><![CDATA[فييد]]></category>
		<category><![CDATA[مصفوفة]]></category>
		<category><![CDATA[طالما]]></category>
		<category><![CDATA[جلب]]></category>
		<category><![CDATA[اخبار]]></category>
		<category><![CDATA[أخبار]]></category>
		<category><![CDATA[ديناميكي]]></category>
		<category><![CDATA[فوري]]></category>
		<category><![CDATA[استخلاص]]></category>
		<category><![CDATA[نستخرج]]></category>
		<category><![CDATA[نجلب]]></category>
		<category><![CDATA[how]]></category>
		<category><![CDATA[data]]></category>

		<guid isPermaLink="false">http://ebncana.wordpress.com/?p=440</guid>
		<description><![CDATA[
السلام عليكم ورحمة الله وبركاته
كيف حالكم اخواني اخواتي ؟ ان شاء الله تكونوا بخير دايما , بعرف ممكن قسم منكم يلومني على التقصير في كتابة الدروس والشروحات لتعميم الفائدة لكن الظروف كانت صعبة اخر فترة وما كان سهل ابدا ادخل وافعل المدونة , لكن على كل حال اليوم انا جاي وجايب لكم معي درس مميز [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ebncana.wordpress.com&blog=3685320&post=440&subd=ebncana&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://ebncana.files.wordpress.com/2009/07/rss-logo-atom-feed-ebncana-big.jpg"><img class="alignleft size-full wp-image-446" style="border:0 none;" title="rss-logo-atom-feed-ebncana-big" src="http://ebncana.files.wordpress.com/2009/07/rss-logo-atom-feed-ebncana-big.jpg?w=170&#038;h=170" alt="rss-logo-atom-feed-ebncana-big" width="170" height="170" /></a></p>
<p>السلام عليكم ورحمة الله وبركاته</p>
<p>كيف حالكم اخواني اخواتي ؟ ان شاء الله تكونوا بخير دايما , بعرف ممكن قسم منكم يلومني على التقصير في كتابة الدروس والشروحات لتعميم الفائدة لكن الظروف كانت صعبة اخر فترة وما كان سهل ابدا ادخل وافعل المدونة , لكن على كل حال اليوم انا جاي وجايب لكم معي درس مميز جدا , هالدرس يشرح كيفية استخراج بيانات ومعلومات اي خلاصة لأي موقع ما يعرف بالانجليزية <a href="http://ar.wikipedia.org/wiki/%D8%A2%D8%B1_%D8%A5%D8%B3_%D8%A5%D8%B3" target="_blank">RSS</a> او <a href="http://ar.wikipedia.org/wiki/%D8%B5%D9%8A%D8%BA%D8%A9_%D8%A3%D8%AA%D9%88%D9%85" target="_blank">Atom Feed</a> وهو الامر الذي سيخدم اي مدير موقع يريد ربط موقعه بخدمات اخبارية مشهورة او حتى ادخال مواضيع مميزة من بعض المنتديات لموقعه الخاص وحفظه في قاعدة بيانات الموقع , طبعا الدرس <span style="color:#ff0000;">للمستوى المتوسط</span> بلغة البرمجة <a href="http://ar.wikipedia.org/wiki/Php" target="_blank">php</a> .</p>
<p><span id="more-440"></span></p>
<p><span style="color:#0000ff;">في البداية رح نكتب الكود سوا وبعدين نقوم بشرحه وفي النهاية نتكلم عن بعض الفوائد لهذا الكود .</span></p>
<p>نبدأ بسم الله</p>
<div style="border:1px solid #999999;margin-bottom:10px;float:right;width:98%;direction:ltr;background-color:#f2f2f2;text-align:left;padding:2px;">
<h5><span style="color:#ff9900;">PHP Code :</span></h5>
<p>&lt;?</p>
<p>// Code By : EbNCaNa</p>
<p>$xml = simplexml_load_file(&#8220;http://www.mysadaqa.org/news-feed.xml&#8221;);</p>
<p>$title = $xml-&gt;xpath(&#8220;/rss/channel/item/title&#8221;);<br />
$link = $xml-&gt;xpath(&#8220;/rss/channel/item/link&#8221;);<br />
$description = $xml-&gt;xpath(&#8220;/rss/channel/item/description&#8221;);</p>
<p>$total=0;</p>
<p>foreach($title as $value){<br />
$total++;<br />
}</p>
<p>for($i=0;$i&lt;$total;$i++){<br />
echo &#8220;Title: $title[$i]&lt;br /&gt;&#8221;;<br />
echo &#8220;Link: $link[$i]&lt;br /&gt;&#8221;;<br />
echo &#8220;Description: $description[$i]&lt;br /&gt;&#8221;;<br />
echo &#8220;&lt;br /&gt;&lt;br /&gt;&#8221;;<br />
}</p>
<p>?&gt;</p></div>
<p><span style="color:#ff0000;">شرح الكود :</span> في السطر البرمجي الاول نقوم باستعمال الدالة <a href="http://il.php.net/manual/en/function.simplexml-load-file.php" target="_blank">simplexml_load_file</a> ووظيفتها ادخال عناصر الملفات ذات الامتداد <a href="http://ar.wikipedia.org/wiki/%D9%84%D8%BA%D8%A9_%D8%A7%D9%84%D8%B1%D9%82%D9%85_%D8%A7%D9%84%D9%82%D8%A7%D8%A8%D9%84%D8%A9_%D9%84%D9%84%D8%A7%D9%85%D8%AA%D8%AF%D8%A7%D8%AF" target="_blank">xml</a> بداخل كائن وفي هذا الدرس سنقوم بالتجربة على خلاصة <a href="http://www.mysadaqa.org" target="_blank">موقع مؤسسة الصدقة الجارية </a>( آخر اعمالي ) , من غير المفروض ان ينتهي عنوان خلاصة المواقع بالامتداد xml دائما فمثلا نهاية عنوان خلاصة مدونات <a href="http://wordpress.com/" target="_blank">وورد برس</a> ينتهي بـ /feed/ ولكن محتوى الملف نفسه يجب ان يكون متلائم ومبنى باقي الملفات ذات الامتداد xml  .</p>
<p>في السطر البرمجي الثاني نقوم بتعريف المتغير title$ والذي سيحمل لنا قيمة جميع عناوين اخبار الموقع والتي سيجلبها من الخلاصة حيث  تعنون بالاسم title ويكون هذا المتغير على شكل مصفوفة , لكي نقوم بهذه الخطوة يجب علينا استعمال الدالة <a href="http://il.php.net/manual/en/function.xpath-eval.php" target="_blank">xpath</a> ووظيفتها الاستكشاف والمرور عبر مختلف العناصر والتعليمات والخصائص لأي ملف صاحب الامتداد xml .</p>
<p>طبعا في السطرين البرمجيين الثالث والرابع نقوم بنفس العملية ولكن مع قيم اخرى وهي روابط الاخبار والمختصر لكل خبر .</p>
<p>في الاسطر 8-5 نقوم بحساب عدد جميع العناصر في الملف ( عدد الاخبار ) ونضع قيمة المجموع في المتغير total$ .</p>
<p>في الاسطر 14-9 نقوم بعمل حلقة تكرار وطالما ان قيمة المتغير i$ هي اقل من قيمة total$ فأن الحلقة ستبقى في تكرار مستمر , في كل مرة نقوم الحلقة باستخراج احد عناصر الصفحة وتعرضه لنا لحد الانتهاء وعرض جميع العناصر بشكل مرتب وسلس .</p>
<p><span style="color:#333399;">ملاحظة : لفهم الدرس بشكل افضل انصح بمشاهدة الكود المصدري لملف الخلاصة ومتابعة الشرح بنفس الوقت .</span></p>
<p><span style="color:#ff0000;">فوائد الكود :</span></p>
<p>1- يمكنك جلب الاخبار واخر التطورات من اي موقع يقدم خدمة الخلاصة وتنشرها بموقعك بشكل ديناميكي وليس يدويا .<br />
2- يمكنك استعمال المخراجات لكي تقوم بنشرها في موقعك لكي لا تقوم بعمل استعلام جديد من قاعدة البيانات وهذا سيوفر من موارد الخادم .<br />
3- يمكنك جلب اخر مواضيع منتدى معين يتميز بمواضيعه المتجددة وتقوم بنقله الى المنتدى الخاص بك وتخزين المحتوى في قاعدة البيانات لديك من دون تكلف عناء النقل اليدوي ( لا اشجع على نقل المواضيع بشكل عام ) .<br />
4- يمكنك بناء خاصية للبحث بحيث تقوم بربط البرمجية بخلاصات مواقع حسب اختيارك وعندها يستطيع المستخدم البحث باكثر من موقع بنفس الوقت وبدون ان تقوم بتخزين المعطيات في قاعدة بيانات البرمجية .</p>
<p>هذه بعض الافكار والتي خطرت ببالي حاليا ولكني كما في كل مرة , اضع النواة واحب ان ارى المبدعين العرب يستحدثون طرق وافكار وبرمجيات مختلفة تقوم بالاساس على النواة .</p>
<p><span style="color:#0000ff;">اتمنى على الله ان يوفقني دائما لكي اوصل لكم المعلومة والفائدة بافضل واسهل الطرق الممكنة , واجدد توصيتي بعدم كتمان العلم .</span></p>
<p><span style="color:#ff0000;">نحو عالم عربي اسلامي مليء بالمبرمجين واصحاب العقول .</span></p>
<p>اخوكم المحب : EbNCaNa</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ebncana.wordpress.com/440/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ebncana.wordpress.com/440/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ebncana.wordpress.com/440/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ebncana.wordpress.com/440/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ebncana.wordpress.com/440/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ebncana.wordpress.com/440/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ebncana.wordpress.com/440/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ebncana.wordpress.com/440/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ebncana.wordpress.com/440/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ebncana.wordpress.com/440/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ebncana.wordpress.com&blog=3685320&post=440&subd=ebncana&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ebncana.wordpress.com/2009/07/12/%d8%af%d8%b1%d8%b3-%d9%83%d9%8a%d9%81%d9%8a%d8%a9-%d8%a7%d8%b3%d8%aa%d8%ae%d8%b1%d8%a7%d8%ac-%d8%a7%d9%84%d8%a8%d9%8a%d8%a7%d9%86%d8%a7%d8%aa-%d9%85%d9%86-%d8%ae%d9%84%d8%a7%d8%b5%d8%a7%d8%aa-%d8%a7/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/58457a05776d42c2f553bd153e6b184b?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">EbNCaNa</media:title>
		</media:content>

		<media:content url="http://ebncana.files.wordpress.com/2009/07/rss-logo-atom-feed-ebncana-big.jpg" medium="image">
			<media:title type="html">rss-logo-atom-feed-ebncana-big</media:title>
		</media:content>
	</item>
		<item>
		<title>الطريقة الاحترافية لايصال الرسائل الى الـ Inbox دائما بواسطة Smtp</title>
		<link>http://ebncana.wordpress.com/2009/02/14/%d8%a7%d9%84%d8%b7%d8%b1%d9%8a%d9%82%d8%a9-%d8%a7%d9%84%d8%a7%d8%ad%d8%aa%d8%b1%d8%a7%d9%81%d9%8a%d8%a9-%d9%84%d8%a7%d9%8a%d8%b5%d8%a7%d9%84-%d8%a7%d9%84%d8%b1%d8%b3%d8%a7%d8%a6%d9%84-%d8%a7%d9%84/</link>
		<comments>http://ebncana.wordpress.com/2009/02/14/%d8%a7%d9%84%d8%b7%d8%b1%d9%8a%d9%82%d8%a9-%d8%a7%d9%84%d8%a7%d8%ad%d8%aa%d8%b1%d8%a7%d9%81%d9%8a%d8%a9-%d9%84%d8%a7%d9%8a%d8%b5%d8%a7%d9%84-%d8%a7%d9%84%d8%b1%d8%b3%d8%a7%d8%a6%d9%84-%d8%a7%d9%84/#comments</comments>
		<pubDate>Fri, 13 Feb 2009 21:43:12 +0000</pubDate>
		<dc:creator>EbNCaNa</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[!!]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[EbNCaNa]]></category>
		<category><![CDATA[EbNCaNa.com]]></category>
		<category><![CDATA[Inbox]]></category>
		<category><![CDATA[Junk]]></category>
		<category><![CDATA[Smtp]]></category>
		<category><![CDATA[فلسطين]]></category>
		<category><![CDATA[فلسطين 48]]></category>
		<category><![CDATA[في]]></category>
		<category><![CDATA[فيها]]></category>
		<category><![CDATA[فترة]]></category>
		<category><![CDATA[فرسالتك]]></category>
		<category><![CDATA[قانا الجليل]]></category>
		<category><![CDATA[قرائة]]></category>
		<category><![CDATA[قصيرة]]></category>
		<category><![CDATA[كفركنا]]></category>
		<category><![CDATA[كلاس]]></category>
		<category><![CDATA[كود]]></category>
		<category><![CDATA[كاحد]]></category>
		<category><![CDATA[للبريد]]></category>
		<category><![CDATA[للرسالة]]></category>
		<category><![CDATA[لم]]></category>
		<category><![CDATA[لا]]></category>
		<category><![CDATA[لايصال]]></category>
		<category><![CDATA[من]]></category>
		<category><![CDATA[منهم]]></category>
		<category><![CDATA[موقعك]]></category>
		<category><![CDATA[ميل]]></category>
		<category><![CDATA[ما]]></category>
		<category><![CDATA[مجلد]]></category>
		<category><![CDATA[مرتفعة]]></category>
		<category><![CDATA[مرغوب]]></category>
		<category><![CDATA[مزعج]]></category>
		<category><![CDATA[نفسه]]></category>
		<category><![CDATA[هو]]></category>
		<category><![CDATA[هذا]]></category>
		<category><![CDATA[وقسم]]></category>
		<category><![CDATA[وهذا]]></category>
		<category><![CDATA[والتي]]></category>
		<category><![CDATA[وان]]></category>
		<category><![CDATA[وبالتالي]]></category>
		<category><![CDATA[يكلف]]></category>
		<category><![CDATA[يحوي]]></category>
		<category><![CDATA[يعلم]]></category>
		<category><![CDATA[يعني]]></category>
		<category><![CDATA[؟]]></category>
		<category><![CDATA[الـ]]></category>
		<category><![CDATA[الكثير]]></category>
		<category><![CDATA[الموقع]]></category>
		<category><![CDATA[المجلد]]></category>
		<category><![CDATA[الى]]></category>
		<category><![CDATA[الافتراضية]]></category>
		<category><![CDATA[الاحترافية]]></category>
		<category><![CDATA[الاعتبار]]></category>
		<category><![CDATA[البريد]]></category>
		<category><![CDATA[الجنك]]></category>
		<category><![CDATA[الحل]]></category>
		<category><![CDATA[الخيارات]]></category>
		<category><![CDATA[الرسائل]]></category>
		<category><![CDATA[الشركات]]></category>
		<category><![CDATA[الطريقة]]></category>
		<category><![CDATA[امر]]></category>
		<category><![CDATA[ان]]></category>
		<category><![CDATA[ابن قانا]]></category>
		<category><![CDATA[احتمال]]></category>
		<category><![CDATA[احد]]></category>
		<category><![CDATA[ادخال]]></category>
		<category><![CDATA[اعتبار]]></category>
		<category><![CDATA[اعضاء]]></category>
		<category><![CDATA[بواسطة]]></category>
		<category><![CDATA[بي اتش بي]]></category>
		<category><![CDATA[بانه]]></category>
		<category><![CDATA[برمجه]]></category>
		<category><![CDATA[برمجيه]]></category>
		<category><![CDATA[برمجية]]></category>
		<category><![CDATA[برمجة]]></category>
		<category><![CDATA[بريد]]></category>
		<category><![CDATA[بعد]]></category>
		<category><![CDATA[ترسلها]]></category>
		<category><![CDATA[تصل]]></category>
		<category><![CDATA[تضع]]></category>
		<category><![CDATA[جدا]]></category>
		<category><![CDATA[حذف]]></category>
		<category><![CDATA[خاصة]]></category>
		<category><![CDATA[دائما]]></category>
		<category><![CDATA[دخول]]></category>
		<category><![CDATA[رسائل]]></category>
		<category><![CDATA[سكربت]]></category>
		<category><![CDATA[صندوق]]></category>
		<category><![CDATA[صاحب]]></category>
		<category><![CDATA[طريق]]></category>
		<category><![CDATA[على]]></category>
		<category><![CDATA[عن]]></category>
		<category><![CDATA[عناء]]></category>
		<category><![CDATA[عين]]></category>
		<category><![CDATA[عدم]]></category>
		<category><![CDATA[عرب 48]]></category>
		<category><![CDATA[غير]]></category>

		<guid isPermaLink="false">http://ebncana.wordpress.com/?p=304</guid>
		<description><![CDATA[السلام عليكم اخواني واخواتي ,
كثير منكم لا يحب الدالة ()Mail في لغة البرمجة php ولكنه بالرغم من ذلك يستعملها عندما يريد ارسال الرسائل في برامجه او موقعه لانه ببساطة لا يملك البديل العملي , وسبب عدم حب هذه الدالة هو انها في اكثر الاحيان ترسل الرسالة بتواقيع غير مرحب بها من قبل شركات البريد وخاصة [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ebncana.wordpress.com&blog=3685320&post=304&subd=ebncana&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>السلام عليكم اخواني واخواتي ,</p>
<p>كثير منكم لا يحب الدالة <a href="http://www.php.net/mail" target="_blank">()Mail</a> في لغة البرمجة php ولكنه بالرغم من ذلك يستعملها عندما يريد ارسال الرسائل في برامجه او موقعه لانه ببساطة لا يملك البديل العملي , وسبب عدم حب هذه الدالة هو انها في اكثر الاحيان ترسل الرسالة بتواقيع غير مرحب بها من قبل شركات البريد وخاصة عندما نتكلم عن تطبيقات Microsoft وبريد Hotmail ولذلك تصنف الرسالة وتدخل في مجلد الجنك ميل Junk mail او ما يسمى Bulk او <a href="http://en.wikipedia.org/wiki/E-mail_spam" target="_blank">Spam</a> وكل هذه الاسماء تطلق على اسم المجلد الذي يستقبل الرسائل الغير موثوق من مصدرها كما اسلفنا .</p>
<p><a href="http://ebncana.files.wordpress.com/2009/02/spf_smtp_ebncana.jpg"><img class="alignleft size-medium wp-image-312" title="spf_smtp_ebncana" src="http://ebncana.files.wordpress.com/2009/02/spf_smtp_ebncana.jpg?w=332&#038;h=181" alt="spf_smtp_ebncana" width="332" height="181" /></a></p>
<p>ان ادخال الرسائل الى صندوق الـ <a href="http://en.wikipedia.org/wiki/Junk_mail" target="_blank">Junk</a> والتي ترسلها عن طريق موقعك الى بريد احد اعضاء الموقع هو امر مزعج جدا خاصة وان الكثير من الشركات تضع في عين الاعتبار حذف رسائل الجنك ميل بعد فترة قصيرة كاحد الخيارات الافتراضية للبريد وهذا يعني ان احتمال عدم قرائة صاحب البريد للرسالة مرتفعة جدا وقسم منهم لا يكلف نفسه عناء دخول هذا مجلد الجنك على اعتبار بانه يعلم ان هذا المجلد يحوي رسائل غير مرغوب فيها وبالتالي فرسالتك لم تصل !! ما الحل ؟</p>
<p><span id="more-304"></span></p>
<p>حاول الكثير من الاخوة الالتفاف على هذا الامر من خلال وضع تواقيع موثوق منها في Header الرسالة وبالتالي فان الرسالة ستصل الى صندوق الوارد Inbox بدون مشاكل ولكن هذا الامر لم يجدي نفعا خاصة وان الكثير من الشركات شددت الرقابة وحاصرت هذه الطرق بشكل كبير لمنع انتشار رسائل السبام Spam وهذا طبعا لمصلحة المستخدم اولا واخيرا , لقد قمت في مرحلة ما بتجربة عمل توقيع موثوق عبر تشفير كل المخرجات التي تستعمل لارسال البريد بالترميز <a href="http://ebncana.wordpress.com/2008/06/29/%d9%85%d8%a7-%d9%87%d9%8a-%d8%a7%d9%84%d8%b4%d9%81%d8%b1%d8%a9-%d8%a7%d9%84%d9%85%d9%88%d8%ad%d8%af%d8%a9-%d9%8a%d9%88%d9%86%d9%90%d9%83%d9%88%d8%af-unicode-%d8%9f/" target="_blank">UTF-8</a> ونجح الامر لفترة ولكنه الآن غير ذي جدوى وكان الكود كالتالي :</p>
<div style="border:1px solid #999999;margin-bottom:10px;float:right;width:98%;direction:ltr;background-color:#f2f2f2;text-align:left;padding:2px;">
<h5><span style="color:#ff9900;">PHP Code :</span></h5>
<p>&lt;?</p>
<p>$sname=&#8221;=?UTF-8?B?&#8221;.base64_encode($sname).&#8221;?=\n&#8221;; // اسم المرسل<br />
$sub=&#8221;=?UTF-8?B?&#8221;.base64_encode($sub).&#8221;?=\n&#8221;; // موضوع الرسالة<br />
$smail=&#8221;"; // بريد المرسل<br />
$rmail=&#8221;"; // بريد المستقبل<br />
$body=&#8221;"; // نص الرسالة</p>
<p>$headers = &#8220;From: $sname &lt;$smail&gt;\r\nReply-To: $smail\r\n&#8221;;<br />
$headers .= &#8220;X-Sender: &lt;$smail&gt;\n&#8221;;<br />
$headers .= &#8220;X-Mailer: PHP\n&#8221;;<br />
$headers .= &#8220;Return-Path: &lt;$rmail&gt;\n&#8221;;<br />
$headers .= &#8220;Content-Type: text/html; charset=UTF-8\n&#8221;;</p>
<p>$send = @mail($rmail,$sub,$body,$headers);</p>
<p>if($send){<br />
echo &#8220;تم الارسال بنجاح&#8221;;<br />
}else{<br />
echo &#8220;لم يتم الارسال بنجاح&#8221;;<br />
}</p>
<p>?&gt;</p></div>
<p>بعد فترة من البحث والتنقيب عن سبب هذا الامر عرفت عن <a href="http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol" target="_blank">Smtp</a> وهو اختصار لـ Server Mail Transfer Protocol وهذا يعني بروتوكول خادم تناقل البريد من والى سيرفر موقعك وكان في الحقيقة هو الحل الامثل لهذه المشكلة ولكن ليس بشكل كامل , فقد قمت بتنزيل كلاس ارسال البريد المشهور  <a href="http://phpmailer.codeworxtech.com/" target="_blank">PHPmailer</a> وفيه امكانية ارسال البريد بـ 3 طريق مختلفة منها الارسال العادي عن طريق الدالة Mail و SMTP و POP3 .</p>
<p>في المرة الاولى التي استعملت بها SMTP كان علي معرفة المنفذ Port الذي يستعمله المستضيف الخاص بي لهذا البروتوكول وهو عادة ما يكون المنفذ 25 او 26 وهذا يختلف من استضافة لاخرى وكان علي معرفة رابط هذا البروتوكول وهذا ايضا حسب الاستضافة فاحيانا يكون mail.domain.com او smtp.domain.com , بعد معرفة هذه المعطيات قمت بتنزيل الملفات الاساسية لكلاس PHPmailer وهي 3 ملفات <a href="http://www.ebncana.com/upload/filez/84553ded2f.html" target="_blank">تجدها هنا </a>او بامكانك دخول <a href="http://phpmailer.codeworxtech.com/" target="_blank">الموقع الرسمي لهذا الكلاس</a> وتنزيل كامل ملفات الكلاس ولكن المهم وقبل البدء بعرض الكود علي ان اخبركم بانه يجب الدخول الى الملف class.smtp.php وتعديل رقم منفذ بروتوكول البريد وهو يكون 25 بالوضع الافتراضي , لا تخف فستجد هذه الخاصية باول سطر برمجي في الملف واذا لم تجده قم بعمل بحث عن var $SMTP_PORT وسوف تجدها بالتأكيد .</p>
<p>بعد تغيير المنفذ حسب المستضيف الخاص بك علينا التوقف قليلا , فعلينا فهم شيء مهم جدا , فلقد تكلمنا مسبقا عن سبب وصول الرسائل الى الجنك ميل واعتقد بان البعض منكم قد سأل نفسه : ما هي النقطة التي ترتكز عليها شركات البريد الالكتروني لكي تقول بان هذا البريد موثوق منه وهذا البريد مشبوه وعليه فيمكن ان يكون بريد سبام Spam ؟؟ هل لانظمتهم عقول فائقة الذكاء للتميز بين البريد المشبوه والموثوق ؟</p>
<p>الجواب كالتالي : ان هذه الشركات جميعها طورت مع بعضها ما يسمى بـ SPF وهي اختصار لـ Sender Policy Framework وهو اطار عمل يتيح للبرمجيات بالتعرف على الرسائل الغير مصرح بها لاسم نطاق معين عند استعمال SMTP , ماذا يعني كلامي ؟؟ حسنا الفكرة بسيطة جدا , تخيل اننا نريد الان ارسال رسالة عن طريق الدالة ()Mail , يمكننا ان نختار بريد المرسل حسب مزاجنا الشخصي صحيح ؟ يمكننا ان نضع هذا الايمل في خانة اسم المرسل : Webmaster@microsoft.com ونرسل رسالة الى ابن قانا نقول له بانك مرشح جدا لخلافة بيل جيتس في ادارة شركة مايكروسوفت !! يقوم ابن قانا بحزم الامتعة الى امريكا وتكتب الصحف عن الشاب العربي البسيط الذي سيتربع على عرش مايكروسوفت في غضون ايام وتكتب عن بداياته حيث كان يبيع الزعتر والزيت في احد الاسواق الشعبية الخ &#8230; كل هذه الافكار كانت تظهر لأبن قانا في غيمة اعلى رأسه وهو يجلس في غرفة الانتظار مقابل المكتب الرئيسي لبيل جيتس <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  , وأخذت الافكار تزيد في راسه والغيمة تكبر ودخل ابن قانا الى بيل جيتس وابتسامة النصر تملأ تقاسيم وجهه وبدأ يتكلم عن انجازاته ويحاول التقليل من شأن نفسه ليقول عنه الصديق الحميم بيل بانه متواضع وانه بالفعل مناسب لهذه الوظيفة ولكن , سرعان ما امسك بيل جيتس بدبوس حاد ووخز غيمة احلام ابن قانا وخزة صغيرة جعل الهواء يخرج منها بسرعة وطارت الغيمة بعيييييييدا .</p>
<p>استفاق ابن قانا في الصباح والعرق يقطر من جبينه بسبب هذا الكابوس المزعج فقد عرف بان احد المزعجين قام وارسل له رسالة SPAM  فيها انتحل بريد مايكروسوفت , وبعد عدة ايام قاموا باختراع الـ SPF لكي لا يقوم اي شخص آخر باستعمال البريد الشخصي لأي شركة او موقع عند استعمال بروتوكول SMTP ؟ عرفتم الآن سبب ابتكار هذا الاطار ؟</p>
<p>اذن يجب ان تحتوي سجلات موقعنا على اطار العمل هذا وعندما تحويه فاننا عندما نرسل اي رسالة الى اي مستضيف فانه يعرف بان موقعنا يحوي هذا السجل وبالتالي فيقوم بتصنيفه كموقع موثوق به ويقوم بقبول رسائله بدون مشاكل .</p>
<p>كيف نعرف ان موقعنا يحوي او لا يحوي SPF ؟ ادخل الى <a href="http://www.politemail.com/check-spf.aspx" target="_blank">هذا الرابط</a> وقم بادخال اسم موقعكم في الخانة الفارغة وسيقوم النظام باعطائك الجواب فاذا كان يحوي فانه سيعطيك قيمة هذا السجل في موقعك فقيمته وشكله يختلفان من استضافة لأخرى وهذا حسب متطلبات الزبون ولتعرف المزيد عن SPF <a href="http://www.google.com/search?hl=en&amp;q=spf+record" target="_blank">ادخل هنا</a>.</p>
<p>بعد ان تأكدنا من هذه الامور سأقوم بعرض الكود الاساسي في هذا الموضوع وهو كالتالي :</p>
<div style="border:1px solid #999999;margin-bottom:10px;float:right;width:98%;direction:ltr;background-color:#f2f2f2;text-align:left;padding:2px;">
<h5><span style="color:#ff9900;">PHP Code :</span></h5>
<p>&lt;?</p>
<p>require_once(&#8220;class.phpmailer.php&#8221;); // نضمن كود الكلاس الاساسي<br />
include(&#8220;class.smtp.php&#8221;);	// نضمن كود الكلاس الخاص بسيرفر SMTP</p>
<p>$sname=&#8221;=?UTF-8?B?&#8221;.base64_encode($sname).&#8221;?=\n&#8221;; // اسم المرسل<br />
$smail=&#8221;"; // بريد المرسل<br />
$rname=&#8221;=?UTF-8?B?&#8221;.base64_encode($rname).&#8221;?=\n&#8221;; // اسم المستقبل<br />
$rmail=&#8221;"; // بريد المستقبل<br />
$sub=&#8221;=?UTF-8?B?&#8221;.base64_encode($sub).&#8221;?=\n&#8221;; // موضوع الرسالة</p>
<p>// لم نقم بتشفير قيم البريد لكل من المرسل والمستقبل لانه بالاحرف اللاتينية</p>
<p>$body=&#8221;"; // نص الرسالة</p>
<p>$mail = new PHPMailer();</p>
<p>$mail-&gt;IsSMTP(); // نختار الارسال عن طريق SMTP</p>
<p>$mail-&gt;Host = $smtp; // اسم سيرفر SMTP &#8211; ممكن ان يكون mail.yourdomain.com / smtp.yourdomain.com</p>
<p>$mail-&gt;SMTPAuth = true;</p>
<p>$mail-&gt;Username = &#8220;anymail@yourdomain.com&#8221;; // البريد الخاص بموقعك يجب ان ينتهي باسم موقعك</p>
<p>$mail-&gt;Password = &#8220;password&#8221;; // كلمة مرور هذا البريد</p>
<p>$mail-&gt;AddReplyTo($smail,$sname); // نختار وجهة ارسال الرد في حال ارسل واسم مستقبل الرد</p>
<p>$mail-&gt;AddAddress($rmail, $rname); // بريد المستقبل واسمه</p>
<p>$mail-&gt;From       = $smail; // بريد المرسل</p>
<p>$mail-&gt;FromName   = $sname; // اسم المرسل</p>
<p>$mail-&gt;Subject    = $sub; // موضوع الرسالة</p>
<p>$mail-&gt;MsgHTML($body); // نص الرسالة &#8211; يمكن ان يكون كود html</p>
<p>$mail-&gt;IsHTML(true); // send as HTML</p>
<p>if(!$mail-&gt;Send()) {<br />
echo &#8220;تم الارسال بنجاح&#8221;;<br />
}else{<br />
echo &#8220;لم يتم الارسال بنجاح&#8221;;<br />
}</p>
<p>?&gt;</p></div>
<p>من الممكن انك لا تملك موقع خاص بك وبالتالي لا تملك سيرفر SMTP لاستعماله عندها يمكنك استعمال سيرفر <a href="http://mail.google.com/mail/?um=1&amp;hl=en&amp;tab=wm" target="_blank">Gmail</a> الخاص اذا كان لديك بريد من شركة Google وهو امر في غاية البساطة والكود الخاصة به لا يختلف كثيرا عن السابق فقط في اعدادات الارسال :</p>
<div style="border:1px solid #999999;margin-bottom:10px;float:right;width:98%;direction:ltr;background-color:#f2f2f2;text-align:left;padding:2px;">
<h5><span style="color:#ff9900;">PHP Code :</span></h5>
<p>&lt;?</p>
<p>require_once(&#8220;class.phpmailer.php&#8221;); // نضمن كود الكلاس الاساسي<br />
include(&#8220;class.smtp.php&#8221;);	// نضمن كود الكلاس الخاص بسيرفر SMTP</p>
<p>$sname=&#8221;=?UTF-8?B?&#8221;.base64_encode($sname).&#8221;?=\n&#8221;; // اسم المرسل<br />
$smail=&#8221;"; // بريد المرسل<br />
$rname=&#8221;=?UTF-8?B?&#8221;.base64_encode($rname).&#8221;?=\n&#8221;; // اسم المستقبل<br />
$rmail=&#8221;"; // بريد المستقبل<br />
$sub=&#8221;=?UTF-8?B?&#8221;.base64_encode($sub).&#8221;?=\n&#8221;; // موضوع الرسالة</p>
<p>// لم نقم بتشفير قيم البريد لكل من المرسل والمستقبل لانه بالاحرف اللاتينية</p>
<p>$body=&#8221;"; // نص الرسالة</p>
<p>$mail = new PHPMailer();</p>
<p>$mail-&gt;IsSMTP(); // نختار الارسال عن طريق SMTP</p>
<p>$mail-&gt;SMTPAuth = true;</p>
<p>// لا تغير اي من قيمة ثلاثة الاعدادات التالية</p>
<p>$mail-&gt;SMTPSecure = &#8220;ssl&#8221;;<br />
$mail-&gt;Host       = &#8220;smtp.gmail.com&#8221;;<br />
$mail-&gt;Port       = 465;</p>
<p>$mail-&gt;Username   = $gmail;  // بريدك الخاص في جوجل<br />
$mail-&gt;Password   = $gpass;   // كلمة مرور البريد</p>
<p>$mail-&gt;AddReplyTo($smail,$sname); // نختار وجهة ارسال الرد في حال ارسل واسم مستقبل الرد</p>
<p>$mail-&gt;AddAddress($rmail, $rname); // بريد المستقبل واسمه</p>
<p>$mail-&gt;From       = $smail; // بريد المرسل</p>
<p>$mail-&gt;FromName   = $sname; // اسم المرسل</p>
<p>$mail-&gt;Subject    = $sub; // موضوع الرسالة</p>
<p>$mail-&gt;MsgHTML($body); // نص الرسالة &#8211; يمكن ان يكون كود html</p>
<p>$mail-&gt;IsHTML(true); // send as HTML</p>
<p>if(!$mail-&gt;Send()) {<br />
echo &#8220;تم الارسال بنجاح&#8221;;<br />
}else{<br />
echo &#8220;لم يتم الارسال بنجاح&#8221;;<br />
}</p>
<p>?&gt;</p></div>
<p>هناك سيئة واحدة وفي المقابل ايجابية واحدة عند استعمال سيرفرات Gmail اما السيئة فهي انك عندما ترسل اي رسالة وتكتب بريد المرسل في الاعدادات , فانه عند وصول الرسالة ستجد ان بريد المرسل هو نفسه بريدك في شركة google وليس الذي قمت بتحديده في الاعدادات وهذا بعكس الارسال عن طريق سيرفر موقعك فانت تقوم بتحديد اي بريد ينتهي باسم موقعك كبريد المرسل , اما الايجابية فهي انك حتى ولو لم تملك سجل SPF خاص بموقعك فانك عندما ترسل اي رسالة الى اي بريد فسيقبلها ويضعها في صندوق الوارد Inbox مباشرة بدون اعتبارها كرسالة غير موثوق منها .</p>
<p><span style="color:#333399;">جميع ما ذكر من اكواد وشرح في هذا الموضوع مبني على تجربة خاصة وليس فقط من قرائه بعض المواضيع , فانا لا اكتفي بالقراءة , بل احاول واجرب كل شيء لكي اكون واثق من كلامي واعطي كل ما لدي من تجربة في سبيل نهضة حقيقة على صعيد تكنولوجيا المعلومات وشبكة الانترنت في العالم العربي .</span></p>
<p>اقدم اعتذاري للاخوة المحترفين لطول الشرح ولكن احب ان تصل المعلومة لجميع المستويات والخبرات , ولا تنسوا فان المجال للحديث والحوار والنقد البناء مفتوح دائما , كما واسقوم بالرد على جميع الاسئلة والاستفسارات باسرع وقت ممكن ان شاء الله <span style="color:#ff0000;">وأخيرا اذكر الاخوة بعدم كتمان العلم فانه كالنقود يجب ان نخرج زكاة لأجله </span>.</p>
<p>باحترام : اخوكم EbNCaNa</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ebncana.wordpress.com/304/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ebncana.wordpress.com/304/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ebncana.wordpress.com/304/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ebncana.wordpress.com/304/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ebncana.wordpress.com/304/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ebncana.wordpress.com/304/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ebncana.wordpress.com/304/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ebncana.wordpress.com/304/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ebncana.wordpress.com/304/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ebncana.wordpress.com/304/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ebncana.wordpress.com&blog=3685320&post=304&subd=ebncana&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ebncana.wordpress.com/2009/02/14/%d8%a7%d9%84%d8%b7%d8%b1%d9%8a%d9%82%d8%a9-%d8%a7%d9%84%d8%a7%d8%ad%d8%aa%d8%b1%d8%a7%d9%81%d9%8a%d8%a9-%d9%84%d8%a7%d9%8a%d8%b5%d8%a7%d9%84-%d8%a7%d9%84%d8%b1%d8%b3%d8%a7%d8%a6%d9%84-%d8%a7%d9%84/feed/</wfw:commentRss>
		<slash:comments>37</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/58457a05776d42c2f553bd153e6b184b?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">EbNCaNa</media:title>
		</media:content>

		<media:content url="http://ebncana.files.wordpress.com/2009/02/spf_smtp_ebncana.jpg?w=300" medium="image">
			<media:title type="html">spf_smtp_ebncana</media:title>
		</media:content>
	</item>
		<item>
		<title>شرح شامل لكيفية توليد رسوم بيانية وثلاثية الابعاد بلغة php</title>
		<link>http://ebncana.wordpress.com/2009/02/05/%d8%b4%d8%b1%d8%ad-%d8%b4%d8%a7%d9%85%d9%84-%d9%84%d9%83%d9%8a%d9%81%d9%8a%d8%a9-%d8%aa%d9%88%d9%84%d9%8a%d8%af-%d8%b1%d8%b3%d9%88%d9%85-%d8%a8%d9%8a%d8%a7%d9%86%d9%8a%d8%a9-%d9%88%d8%ab%d9%84%d8%a7/</link>
		<comments>http://ebncana.wordpress.com/2009/02/05/%d8%b4%d8%b1%d8%ad-%d8%b4%d8%a7%d9%85%d9%84-%d9%84%d9%83%d9%8a%d9%81%d9%8a%d8%a9-%d8%aa%d9%88%d9%84%d9%8a%d8%af-%d8%b1%d8%b3%d9%88%d9%85-%d8%a8%d9%8a%d8%a7%d9%86%d9%8a%d8%a9-%d9%88%d8%ab%d9%84%d8%a7/#comments</comments>
		<pubDate>Thu, 05 Feb 2009 14:23:12 +0000</pubDate>
		<dc:creator>EbNCaNa</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[EbNCaNa]]></category>
		<category><![CDATA[EbNCaNa.com]]></category>
		<category><![CDATA[فلسطين]]></category>
		<category><![CDATA[فلسطين 48]]></category>
		<category><![CDATA[فطيرة]]></category>
		<category><![CDATA[قانا الجليل]]></category>
		<category><![CDATA[كفركنا]]></category>
		<category><![CDATA[كود]]></category>
		<category><![CDATA[كامل]]></category>
		<category><![CDATA[لكيفية]]></category>
		<category><![CDATA[مكتبة GD]]></category>
		<category><![CDATA[مبرمج]]></category>
		<category><![CDATA[وثلاثية]]></category>
		<category><![CDATA[الابعاد]]></category>
		<category><![CDATA[ابن قانا]]></category>
		<category><![CDATA[اعدة]]></category>
		<category><![CDATA[بلغة]]></category>
		<category><![CDATA[بي اتش بي]]></category>
		<category><![CDATA[بيانية]]></category>
		<category><![CDATA[بالصور]]></category>
		<category><![CDATA[برمجة]]></category>
		<category><![CDATA[توليد]]></category>
		<category><![CDATA[تصميم]]></category>
		<category><![CDATA[دوائر]]></category>
		<category><![CDATA[دائريه]]></category>
		<category><![CDATA[دائرية]]></category>
		<category><![CDATA[دائرة]]></category>
		<category><![CDATA[رسم]]></category>
		<category><![CDATA[رسوم]]></category>
		<category><![CDATA[شامل]]></category>
		<category><![CDATA[شرح]]></category>
		<category><![CDATA[عرب 48]]></category>

		<guid isPermaLink="false">http://ebncana.wordpress.com/?p=286</guid>
		<description><![CDATA[السلام عليكم اخواني واخواتي :
اليوم جايبلكم معي كود جميل جدا وظيفته توليد صورة رسم بياني ثلاثية الابعاد على شكل دائري وهو يعتمد بالاساس على مكتبة GD بمعنى اذا لما تكون هذه المكتبة منصبة على السيرفر فان الكود لن يعمل وسوف يعطيك خطأ برمجي .
بعد هذا الشرح يوجد روابط لاشهر مكاتب توليد الرسوم البيانية الكاملة بلغة [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ebncana.wordpress.com&blog=3685320&post=286&subd=ebncana&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>السلام عليكم اخواني واخواتي :</p>
<p>اليوم جايبلكم معي كود جميل جدا وظيفته توليد صورة رسم بياني ثلاثية الابعاد على شكل دائري وهو يعتمد بالاساس على مكتبة GD بمعنى اذا لما تكون هذه المكتبة منصبة على السيرفر فان الكود لن يعمل وسوف يعطيك خطأ برمجي .</p>
<p>بعد هذا الشرح يوجد روابط لاشهر مكاتب توليد الرسوم البيانية الكاملة بلغة php واكيد عملها رائع واستعمالها سهل جدا .</p>
<p><span style="color:#0000ff;">مثال لصورة من توليد الكود :</span></p>
<p style="text-align:right;"><a href="http://ebncana.files.wordpress.com/2009/02/php_3d_pie_chart_ebncana.jpg"><img class="size-full wp-image-287 alignnone" title="php_3d_pie_chart_ebncana" src="http://ebncana.files.wordpress.com/2009/02/php_3d_pie_chart_ebncana.jpg?w=299&#038;h=155" alt="php_3d_pie_chart_ebncana" width="299" height="155" /></a></p>
<p><span style="color:#0000ff;">الآن اترككم مع الكود :</span></p>
<p><span id="more-286"></span></p>
<div style="border:1px solid #999999;margin-bottom:10px;float:right;width:98%;direction:ltr;background-color:#f2f2f2;text-align:left;padding:2px;">
<h5><span style="color:#ff9900;">PHP Code :</span></h5>
<p>&lt;?</p>
<p>////////////////////////////////////////////////////////////////<br />
// PHP script made by Rasmus &#8211; http://www.peters1.dk //<br />
////////////////////////////////////////////////////////////////</p>
<p>$show_label = true; // true = show label, false = don&#8217;t show label.<br />
$show_percent = true; // true = show percentage, false = don&#8217;t show percentage.<br />
$show_text = true; // true = show text, false = don&#8217;t show text.<br />
$show_parts = false; // true = show parts, false = don&#8217;t show parts.<br />
$label_form = &#8217;square&#8217;; // &#8217;square&#8217; or &#8217;round&#8217; label.<br />
$width = 199;<br />
$background_color = &#8216;FFFFFF&#8217;; // background-color of the chart&#8230;<br />
$text_color = &#8216;000000&#8242;; // text-color.<br />
$colors = array(&#8216;003366&#8242;, &#8216;CCD6E0&#8242;, &#8216;7F99B2&#8242;,&#8217;F7EFC6&#8242;, &#8216;C6BE8C&#8217;, &#8216;CC6600&#8242;,&#8217;990000&#8242;,&#8217;520000&#8242;,&#8217;BFBFC1&#8242;,&#8217;808080&#8242;); // colors of the slices.<br />
$shadow_height = 20; // Height on shadown.<br />
$shadow_dark = true; // true = darker shadow, false = lighter shadow&#8230;</p>
<p>// DON&#8217;T CHANGE ANYTHING BELOW THIS LINE&#8230;</p>
<p>$data = $_GET["data"];<br />
$label = $_GET["label"];</p>
<p>$height = $width/2;<br />
$data = explode(&#8216;*&#8217;,$data);</p>
<p>if ($label != &#8221;) $label = explode(&#8216;*&#8217;,$label);</p>
<p>for ($i = 0; $i &lt; count($label); $i++)<br />
{<br />
if ($data[$i]/array_sum($data) &lt; 0.1) $number[$i] = &#8216; &#8216;.number_format(($data[$i]/array_sum($data))*100,1,&#8217;,',&#8217;.').&#8217;%';<br />
else $number[$i] = number_format(($data[$i]/array_sum($data))*100,1,&#8217;,',&#8217;.').&#8217;%';<br />
if (strlen($label[$i]) &gt; $text_length) $text_length = strlen($label[$i]);<br />
}</p>
<p>if (is_array($label))<br />
{<br />
$antal_label = count($label);<br />
$xtra = (5+15*$antal_label)-($height+ceil($shadow_height));<br />
if ($xtra &gt; 0) $xtra_height = (5+15*$antal_label)-($height+ceil($shadow_height));</p>
<p>$xtra_width = 5;<br />
if ($show_label) $xtra_width += 20;<br />
if ($show_percent) $xtra_width += 45;<br />
if ($show_text) $xtra_width += $text_length*8;<br />
if ($show_parts) $xtra_width += 35;<br />
}</p>
<p>$img = ImageCreateTrueColor($width+$xtra_width, $height+ceil($shadow_height)+$xtra_height);</p>
<p>ImageFill($img, 0, 0, colorHex($img, $background_color));</p>
<p>foreach ($colors as $colorkode)<br />
{<br />
$fill_color[] = colorHex($img, $colorkode);<br />
$shadow_color[] = colorHexshadow($img, $colorkode, $shadow_dark);<br />
}</p>
<p>$label_place = 5;</p>
<p>if (is_array($label))<br />
{<br />
for ($i = 0; $i &lt; count($label); $i++)<br />
{<br />
if ($label_form == &#8217;round&#8217; &amp;&amp; $show_label)<br />
{<br />
imagefilledellipse($img,$width+11,$label_place+5,10,10,colorHex($img, $colors[$i % count($colors)]));<br />
imageellipse($img,$width+11,$label_place+5,10,10,colorHex($img, $text_color));<br />
}<br />
else if ($label_form == &#8217;square&#8217; &amp;&amp; $show_label)<br />
{<br />
imagefilledrectangle($img,$width+6,$label_place,$width+16,$label_place+10,colorHex($img, $colors[$i % count($colors)]));<br />
imagerectangle($img,$width+6,$label_place,$width+16,$label_place+10,colorHex($img, $text_color));<br />
}</p>
<p>if ($show_percent) $label_output = $number[$i].&#8217; &#8216;;<br />
if ($show_text) $label_output = $label_output.$label[$i].&#8217; &#8216;;<br />
if ($show_parts) $label_output = $label_output.$data[$i];</p>
<p>imagestring($img,2,$width+20,$label_place,$label_output,colorHex($img, $text_color));<br />
$label_output = &#8221;;</p>
<p>$label_place = $label_place + 15;<br />
}<br />
}<br />
$centerX = round($width/2);<br />
$centerY = round($height/2);<br />
$diameterX = $width-4;<br />
$diameterY = $height-4;</p>
<p>$data_sum = array_sum($data);</p>
<p>$start = 270;</p>
<p>for ($i = 0; $i &lt; count($data); $i++)<br />
{<br />
$value += $data[$i];<br />
$end = ceil(($value/$data_sum)*360) + 270;<br />
$slice[] = array($start, $end, $shadow_color[$value_counter % count($shadow_color)], $fill_color[$value_counter % count($fill_color)]);<br />
$start = $end;<br />
$value_counter++;<br />
}</p>
<p>for ($i=$centerY+$shadow_height; $i&gt;$centerY; $i&#8211;)<br />
{<br />
for ($j = 0; $j &lt; count($slice); $j++)<br />
{<br />
if ($slice[$j][0] != $slice[$j][1]) ImageFilledArc($img, $centerX, $i, $diameterX, $diameterY, $slice[$j][0], $slice[$j][1], $slice[$j][2], IMG_ARC_PIE);<br />
}<br />
}</p>
<p>for ($j = 0; $j &lt; count($slice); $j++)<br />
{<br />
if ($slice[$j][0] != $slice[$j][1]) ImageFilledArc($img, $centerX, $centerY, $diameterX, $diameterY, $slice[$j][0], $slice[$j][1], $slice[$j][3], IMG_ARC_PIE);<br />
}</p>
<p>OutputImage($img);<br />
ImageDestroy($img);</p>
<p>function colorHex($img, $HexColorString)<br />
{<br />
$R = hexdec(substr($HexColorString, 0, 2));<br />
$G = hexdec(substr($HexColorString, 2, 2));<br />
$B = hexdec(substr($HexColorString, 4, 2));<br />
return ImageColorAllocate($img, $R, $G, $B);<br />
}</p>
<p>function colorHexshadow($img, $HexColorString, $mork)<br />
{<br />
$R = hexdec(substr($HexColorString, 0, 2));<br />
$G = hexdec(substr($HexColorString, 2, 2));<br />
$B = hexdec(substr($HexColorString, 4, 2));</p>
<p>if ($mork)<br />
{<br />
($R &gt; 99) ? $R -= 100 : $R = 0;<br />
($G &gt; 99) ? $G -= 100 : $G = 0;<br />
($B &gt; 99) ? $B -= 100 : $B = 0;<br />
}<br />
else<br />
{<br />
($R &lt; 220) ? $R += 35 : $R = 255;<br />
($G &lt; 220) ? $G += 35 : $G = 255;<br />
($B &lt; 220) ? $B += 35 : $B = 255;<br />
}</p>
<p>return ImageColorAllocate($img, $R, $G, $B);<br />
}</p>
<p>function OutputImage($img)<br />
{<br />
header(&#8216;Content-type: image/jpg&#8217;);<br />
ImageJPEG($img,NULL,100);<br />
}<br />
?&gt;</p></div>
<p><span style="color:#0000ff;">طريقة توليد الصورة :</span></p>
<div style="border:1px solid #999999;margin-bottom:10px;float:right;width:98%;direction:ltr;background-color:#f2f2f2;text-align:left;padding:2px;">
<h5><span style="color:#ff9900;">Html Code :</span></h5>
<p>&lt;img src=&#8221;http://www.domain.com/chart.php?data=10*9*11*10&amp;label=Denmark*Germany*USA*Sweden&#8221; /&gt;</p></div>
<p><span style="color:#0000ff;">روابط لمكاتب php رائعة تختص بتوليد الرسوم البيانية على انواعها :</span></p>
<p>- أشهر مكتبة JpGraph وهي <a href="http://www.aditus.nu/jpgraph/features.php" target="_blank">JpGraph &#8211; Features</a><br />
- مكتبة صغيره وتؤدي أغلب الاحتياجيات <a href="http://www.ebrueggeman.com/phpgraphlib/examples.php" target="_blank">PHPGraphLib Lightweight PHP Graphing Library &#8211; Examples</a><br />
- هنا أيضا مكتبه رائعه <a href="http://pchart.sourceforge.net/screenshots.php" target="_blank">pChart | a PHP Charting library</a></p>
<p><span style="color:#ff0000;">اي سؤال او استفسار الرجاء عدم التردد في طرحه وسأجيب بأقرب وقت ممكن ان شاء الله .</span></p>
<p>السلام عليكم</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ebncana.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ebncana.wordpress.com/286/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ebncana.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ebncana.wordpress.com/286/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ebncana.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ebncana.wordpress.com/286/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ebncana.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ebncana.wordpress.com/286/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ebncana.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ebncana.wordpress.com/286/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ebncana.wordpress.com&blog=3685320&post=286&subd=ebncana&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ebncana.wordpress.com/2009/02/05/%d8%b4%d8%b1%d8%ad-%d8%b4%d8%a7%d9%85%d9%84-%d9%84%d9%83%d9%8a%d9%81%d9%8a%d8%a9-%d8%aa%d9%88%d9%84%d9%8a%d8%af-%d8%b1%d8%b3%d9%88%d9%85-%d8%a8%d9%8a%d8%a7%d9%86%d9%8a%d8%a9-%d9%88%d8%ab%d9%84%d8%a7/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/58457a05776d42c2f553bd153e6b184b?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">EbNCaNa</media:title>
		</media:content>

		<media:content url="http://ebncana.files.wordpress.com/2009/02/php_3d_pie_chart_ebncana.jpg" medium="image">
			<media:title type="html">php_3d_pie_chart_ebncana</media:title>
		</media:content>
	</item>
		<item>
		<title>الكتب التعليمية الخمس اللازمة للتقدم لامتحان شركة ZCE &#8211; Zend  مجانا !!</title>
		<link>http://ebncana.wordpress.com/2008/11/19/%d8%a7%d9%84%d9%83%d8%aa%d8%a8-%d8%a7%d9%84%d8%aa%d8%b9%d9%84%d9%8a%d9%85%d9%8a%d8%a9-%d8%a7%d9%84%d8%ae%d9%85%d8%b3-%d8%a7%d9%84%d9%84%d8%a7%d8%b2%d9%85%d8%a9-%d9%84%d9%84%d8%aa%d9%82%d8%af%d9%85/</link>
		<comments>http://ebncana.wordpress.com/2008/11/19/%d8%a7%d9%84%d9%83%d8%aa%d8%a8-%d8%a7%d9%84%d8%aa%d8%b9%d9%84%d9%8a%d9%85%d9%8a%d8%a9-%d8%a7%d9%84%d8%ae%d9%85%d8%b3-%d8%a7%d9%84%d9%84%d8%a7%d8%b2%d9%85%d8%a9-%d9%84%d9%84%d8%aa%d9%82%d8%af%d9%85/#comments</comments>
		<pubDate>Wed, 19 Nov 2008 10:35:41 +0000</pubDate>
		<dc:creator>EbNCaNa</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[5]]></category>
		<category><![CDATA[Advanced PHP Programming]]></category>
		<category><![CDATA[Andi Gutmans]]></category>
		<category><![CDATA[by]]></category>
		<category><![CDATA[Cal Evans]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[Derick Rethans]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[EbNCaNa]]></category>
		<category><![CDATA[EbNCaNa.com]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[George]]></category>
		<category><![CDATA[Guide to Programming with Zend Framework]]></category>
		<category><![CDATA[Laura Thomson]]></category>
		<category><![CDATA[Luke Welling]]></category>
		<category><![CDATA[pdf]]></category>
		<category><![CDATA[PHP and MySQL Web Development]]></category>
		<category><![CDATA[PHP5 Power Programming]]></category>
		<category><![CDATA[rar]]></category>
		<category><![CDATA[Schlossnagle]]></category>
		<category><![CDATA[Stig Bakken]]></category>
		<category><![CDATA[فلسطين]]></category>
		<category><![CDATA[فلسطين 48]]></category>
		<category><![CDATA[قانا الجليل]]></category>
		<category><![CDATA[كفركنا]]></category>
		<category><![CDATA[كود]]></category>
		<category><![CDATA[للتقدم]]></category>
		<category><![CDATA[لامتحان]]></category>
		<category><![CDATA[مجانا]]></category>
		<category><![CDATA[ZCE]]></category>
		<category><![CDATA[zend]]></category>
		<category><![CDATA[Zend PHP Certification Study Guide]]></category>
		<category><![CDATA[zip]]></category>
		<category><![CDATA[الكتب]]></category>
		<category><![CDATA[اللازمة]]></category>
		<category><![CDATA[التعليمية]]></category>
		<category><![CDATA[الخمس]]></category>
		<category><![CDATA[ابن قانا]]></category>
		<category><![CDATA[بي اتش بي]]></category>
		<category><![CDATA[برمجه]]></category>
		<category><![CDATA[برمجة]]></category>
		<category><![CDATA[زند]]></category>
		<category><![CDATA[شركة]]></category>
		<category><![CDATA[عرب 48]]></category>

		<guid isPermaLink="false">http://ebncana.wordpress.com/?p=218</guid>
		<description><![CDATA[السلام عليكم ورحمة الله وبراكاته
اخواني واخواتي في حوزتي اليوم لكم 5 كتب قيمة جدا وهي الكتب المتوفرة فقط بشكل غير مجاني من الموقع الرسمي لشركة Zend وهي الشركة الراعية لتطوير بيئات عمل برمجية للتفاعل ودعم لغة البرمجة العالمية المشهورة php , ثمن هذه الكتب مع بعض يصل الى 150 دولار ولكني سأضعها بين ايديكم اليوم [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ebncana.wordpress.com&blog=3685320&post=218&subd=ebncana&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>السلام عليكم ورحمة الله وبراكاته</p>
<p>اخواني واخواتي في حوزتي اليوم لكم 5 كتب قيمة جدا وهي الكتب المتوفرة فقط بشكل غير مجاني من الموقع الرسمي لشركة Zend وهي الشركة الراعية لتطوير بيئات عمل برمجية للتفاعل ودعم لغة البرمجة العالمية المشهورة php , <a href="http://www.zend.com/en/store/php-books/" target="_blank">ثمن هذه الكتب مع بعض يصل الى 150 دولار</a> ولكني سأضعها بين ايديكم اليوم بشكل مجاني .</p>
<p><span id="more-218"></span></p>
<p>تقدم الشركة المجال لمن يجد في نفسه القدرة على تجاوز الامتحان بنجاح الفرصة ليكون &#8221; مهندس php معتمد من قبل شركة Zend &#8221; او بالانجليزية   Zend Certified Engineer وهذا الامتحان متوفر فقط عن طريق هذه الشركة ولا يوجد اي جهة رسمية اخرى مؤهلة لعمل هذا الامتحان &#8230; وعند النجاح في الامتحان سوف تستلم شهادة حائط من قبل الشركة بالاضافة لادراج اسمك وصورتك في صفحات زند الصفراء وهذا بمثابة شهادة الكترونية على الانترنت &#8230; هذه الشهادة محترمة جدا ومن يملكها فانه يستطيع ان يعمل في اكبر الشركات العالمية .</p>
<p>لا اريد الاطالة بالحديث عن الامتحان ولكن للمزيد من المعلومات :</p>
<p><a href="http://en.wikipedia.org/wiki/ZCE" target="_blank">http://en.wikipedia.org/wiki/ZCE</a></p>
<p><a href="http://www.mharatsoft.com/soft/soft24/447.html" target="_blank">http://www.mharatsoft.com/soft/soft24/447.html</a></p>
<p><a href="http://www.swalif.net/softs/swalif54/softs155636/" target="_blank">http://www.swalif.net/softs/swalif54/softs155636/</a></p>
<p><span style="color:#ff0000;">تحميل الكتب :</span></p>
<p><span style="color:#ff0000;"><br />
</span></p>
<p>1- Zend PHP Certification Study Guide</p>
<p><a href="http://www.ebncana.com/upload/filez/344a933b13.html" target="_blank"><img style="border:0 none;" src="http://www.ebncana.com/upload/extension/pdf.gif" border="0" alt="" width="100" height="100" /></a></p>
<p>2- Guide to Programming with Zend Framework</p>
<p><a href="http://www.ebncana.com/upload/filez/ce8bd99c6a.html" target="_blank"><img style="border:0 none;" src="http://www.ebncana.com/upload/extension/pdf.gif" border="0" alt="" width="100" height="100" /></a></p>
<p>3- PHP5 Power Programming</p>
<p><a href="http://www.ebncana.com/upload/filez/a2c8a93c06.html" target="_blank"><img style="border:0 none;" src="http://www.ebncana.com/upload/extension/pdf.gif" border="0" alt="" width="100" height="100" /></a></p>
<p>4- PHP and MySQL Web Development</p>
<p><a href="http://www.ebncana.com/upload/filez/80c422263c.html" target="_blank"><img style="border:0 none;" src="http://www.ebncana.com/upload/extension/pdf.gif" border="0" alt="" width="100" height="100" /></a></p>
<p>5- Advanced PHP Programming</p>
<p><a href="http://www.ebncana.com/upload/filez/0251061b34.html" target="_blank"><img style="border:0 none;" src="http://www.ebncana.com/upload/extension/zip.gif" border="0" alt="" width="100" height="100" /></a></p>
<p><span style="color:#0000ff;">واخيرا اتمنا ان تحوز هذه الكتب على رضاكم ونحو مستقبل مشرق للبرمجة العربية القوية المنافسة للسوق الغربي .</span></p>
<p>اخوكم : EbNCaNa</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ebncana.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ebncana.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ebncana.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ebncana.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ebncana.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ebncana.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ebncana.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ebncana.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ebncana.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ebncana.wordpress.com/218/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ebncana.wordpress.com&blog=3685320&post=218&subd=ebncana&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ebncana.wordpress.com/2008/11/19/%d8%a7%d9%84%d9%83%d8%aa%d8%a8-%d8%a7%d9%84%d8%aa%d8%b9%d9%84%d9%8a%d9%85%d9%8a%d8%a9-%d8%a7%d9%84%d8%ae%d9%85%d8%b3-%d8%a7%d9%84%d9%84%d8%a7%d8%b2%d9%85%d8%a9-%d9%84%d9%84%d8%aa%d9%82%d8%af%d9%85/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/58457a05776d42c2f553bd153e6b184b?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">EbNCaNa</media:title>
		</media:content>

		<media:content url="http://www.ebncana.com/upload/extension/pdf.gif" medium="image" />

		<media:content url="http://www.ebncana.com/upload/extension/pdf.gif" medium="image" />

		<media:content url="http://www.ebncana.com/upload/extension/pdf.gif" medium="image" />

		<media:content url="http://www.ebncana.com/upload/extension/pdf.gif" medium="image" />

		<media:content url="http://www.ebncana.com/upload/extension/zip.gif" medium="image" />
	</item>
		<item>
		<title>درس : نظام تخزين المخرجات ( Cache Output ) بالشرح المفصل والامثلة العملية</title>
		<link>http://ebncana.wordpress.com/2008/11/14/%d8%af%d8%b1%d8%b3-%d9%86%d8%b8%d8%a7%d9%85-%d8%aa%d8%ae%d8%b2%d9%8a%d9%86-%d8%a7%d9%84%d9%85%d8%ae%d8%b1%d8%ac%d8%a7%d8%aa-cache-output-%d8%a8%d8%a7%d9%84%d8%b4%d8%b1%d8%ad-%d8%a7%d9%84%d9%85/</link>
		<comments>http://ebncana.wordpress.com/2008/11/14/%d8%af%d8%b1%d8%b3-%d9%86%d8%b8%d8%a7%d9%85-%d8%aa%d8%ae%d8%b2%d9%8a%d9%86-%d8%a7%d9%84%d9%85%d8%ae%d8%b1%d8%ac%d8%a7%d8%aa-cache-output-%d8%a8%d8%a7%d9%84%d8%b4%d8%b1%d8%ad-%d8%a7%d9%84%d9%85/#comments</comments>
		<pubDate>Fri, 14 Nov 2008 20:38:23 +0000</pubDate>
		<dc:creator>EbNCaNa</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[EbNCaNa]]></category>
		<category><![CDATA[EbNCaNa.com]]></category>
		<category><![CDATA[memory]]></category>
		<category><![CDATA[output]]></category>
		<category><![CDATA[فلسطين]]></category>
		<category><![CDATA[فلسطين 48]]></category>
		<category><![CDATA[قانا الجليل]]></category>
		<category><![CDATA[كفركنا]]></category>
		<category><![CDATA[كود]]></category>
		<category><![CDATA[كاش]]></category>
		<category><![CDATA[لغه]]></category>
		<category><![CDATA[لغة]]></category>
		<category><![CDATA[مجلد]]></category>
		<category><![CDATA[نظام]]></category>
		<category><![CDATA[والامثلة]]></category>
		<category><![CDATA[الكاش]]></category>
		<category><![CDATA[المفصل]]></category>
		<category><![CDATA[المجلد]]></category>
		<category><![CDATA[المحصول]]></category>
		<category><![CDATA[المخرجات]]></category>
		<category><![CDATA[التصريح]]></category>
		<category><![CDATA[العملية]]></category>
		<category><![CDATA[ابن قانا]]></category>
		<category><![CDATA[اساليب]]></category>
		<category><![CDATA[بي اتش بي]]></category>
		<category><![CDATA[بالشرح]]></category>
		<category><![CDATA[برمجه]]></category>
		<category><![CDATA[برمجيه]]></category>
		<category><![CDATA[برمجية]]></category>
		<category><![CDATA[برمجة]]></category>
		<category><![CDATA[تخزين]]></category>
		<category><![CDATA[تصاريح]]></category>
		<category><![CDATA[تصريح]]></category>
		<category><![CDATA[درس]]></category>
		<category><![CDATA[طرق]]></category>
		<category><![CDATA[عرب 48]]></category>

		<guid isPermaLink="false">http://ebncana.wordpress.com/?p=223</guid>
		<description><![CDATA[السلام عليكم ورحمة الله وبركاته
الكاش &#8230; كلمة سمعها الكثيرين &#8230; منهم المحترفون ومنهم المبتدئون &#8230; قرأت هذه الكلمة لأول مرة في منتديات جنة العرب &#8230; حيث كنت بصدد تركيب منتدى خاص بي &#8230; وكان من ضمن تعليمات الاخوة المشرفين عند تركيب النسخة هو اعطاء مجلد &#8221; الكاش &#8221; التصريح الامني اللازم لضمان الحماية الافضل للمنتدى [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ebncana.wordpress.com&blog=3685320&post=223&subd=ebncana&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>السلام عليكم ورحمة الله وبركاته</p>
<p><span style="color:#ff0000;">الكاش</span> &#8230; كلمة سمعها الكثيرين &#8230; منهم المحترفون ومنهم المبتدئون &#8230; قرأت هذه الكلمة لأول مرة في منتديات جنة العرب &#8230; حيث كنت بصدد تركيب منتدى خاص بي &#8230; وكان من ضمن تعليمات الاخوة المشرفين عند تركيب النسخة هو اعطاء مجلد &#8221; الكاش &#8221; التصريح الامني اللازم لضمان الحماية الافضل للمنتدى &#8230; لم اكن اعرف ماذا يعني الكاش ولماذا يستعمل &#8230; ولكني الان وقد عرفت الجواب لسؤالي والحمد لله &#8230; اريد ان اشارككم بما عرفته عن هذا المجلد وماذا يعني وما هي الفكرة الكامنة من وراء استعماله في كثير من انظمة ادارة المحتوى العالمية &#8230;<br />
<span id="more-223"></span><br />
اعلم بان قسم من القراء يعلم الكثير عن الكاش ومنهم من يستعملونه في موافقعهم بدون ان يعرفوا لماذا يستعمل &#8230; ومن منكم قد قرأ في احدى المرات عن ما يسمى CacheLite  وعرف عنها الكثير فاني متاكد بان القسم الكبير من متعلمي البرمجة لا يعلم شيء عن هذه الخاصية ولهذا السبب فاني اتوجه لكم بهذا المقال اليوم .</p>
<p>جميعنا يعلم بان الصفحات الديناميكية قد تستغرق وقت اكثر من الصفحات العادية لكي تحمل للمتصفح وتظهر كاملة , الأمر الذي يجبر المتصفح على الانتظار &#8230; ولكن صبره سرعان ما سينفذ ويخرج حانقا من الموقع ما لم تظهر الصفحة خلال ثواني معدودة &#8230; ما الحل اذن ؟؟</p>
<p>افترض بان قسم منكم يرى كلامي عار عن الصحة ولا مكان له من الاعراب في عالم البرمجة &#8230; وانا لا الوم هذه الشريحة لانها لم تقم ببرمجة اي عمل او مشروع بشكل ذاتي او ببرمجة كاملة وعليه فانهم سينكرون ما اقول &#8230; في الماضي كانت عملية ارسال محتوى صفحة غير ديناميكية من سيرفر الموقع الى المتصفح عملية صعبة وشاقة بعض الشيء على كلا الطرفين ولكن العلم يتقدم والمطورون يخرجون يطرق جديدة في كل يوم لتسهيل عملية معالجة البيانات وارسالها باقصى سرعة ممكنة الى وجهتها ولهذا السبب نرى كم هي سهلة وسريعة وسلسة عملية ارسال صفحة html عادية الى اي متصفح &#8230; لم يعد هذا الامر بالتحدي الكبير لأن مثل هذه صفحات تحتوي على بعض النصوص والصور وهذا المحتوى لا يسبب العبء الكبير على السيرفر .</p>
<p>اليوم اصبح يكمن التحدي الحقيقي في هذا المجال بكيفية جعل البرنامج او السكربت الذي قمنا ببنائه يعالج بنفس السرعة التي يعالج بهذا المحتوى الغير ديناميكي واعتقد بان الغرب قد قطع شوطا كبيرا في هذه النقطة ونحن العرب كالعادة &#8230; تصلنا آخر صيحات البرمجة بعد وقت لا بأس فيه من انطلاقها والسبب واضح وهو كتمان العلم , فترى المبرمج العربي قد تعرف على تقنية جديدة وثورية في مجال برمجي معين عندها يقوم ببناء برنامج معين او سكربت &#8230; ويقوم بتشفير اكواده ويبدأ ببيعها واذا طلب احدهم معلومة عن المحتوى او الطريقة فان الويل سيكون من نصيب الاخير .</p>
<p>لا اريد ان اطيل عليكم بالكلام وسأبدأ بان الله بشرح طريقة <span style="color:#ff0000;">&#8221; تخزين المحتوى او تخزين المخرجات &#8220;  <span style="color:#0000ff;">Output Caching</span></span> وهذه الطريقة رائعة جدا لمعالجة الصفحات الديناميكية وارسالها للمتصفح باكبر سسرعة ممكنة &#8230;  والفكرة هي ان السيرفر يقوم بعمل نسخة من محتوى الصفحة التي قمنا بزيارتها ويقوم بحفظ هذه النسخة بمجلد معين عادة ما يكون اسمه Cache  , يحتوي الملف المخزن في هذا المجلد على بيانات الصفحة بعد معالجتها من قبل المتصفح وترجمة جميع الاكواد الى لغة html  وهذا يعني ان الملف المخزن للصفحة الديناميكية هو ملف لكود غير ديناميكي وبالتالي فاني اعتقد بانكم ادركتم الجدوى من هذه الطريقة .</p>
<p>نفترض الان بان الزائر قد انتقل الى صفحة اخرى من الموقع &#8230; وتصفح جميع صفحات الموقع وبعد دقائق عاد الى الموقع ليتصفحه من جديد &#8230; هل سيكون فرق بين سرعة عملية دخول الصفحة قبل وبعد تخزين نسخة لها ؟؟؟ نعم بالتأكيد &#8230; فنظام &#8221; تخزين المحتوى او المخرجات &#8221; يعمل في بداية كل امر لطلب صفحة معينة &#8230; يقوم بالبداية بفحص ما اذا كان لهذه الصفحة نسخة في مجلد Cache  فاذا كانت النتيجة ايجابية فانه لن يعالج نفس الاكواد البرمجية في الصفحة الحالية والتي قد تحوي الكثير من الاوامر البرمجية والتي تشكل الضغظ على السيرفر وقد تحوي ايضا استعلامات لقواعد البيانات وكل هذه الاوامر هي التي تقوم بالتقليل من سرعة الصفحات عند طلبها اما اذا كانت النتيجة سلبية &#8230; اي ان المجلد Cache  لا يحوي نسخة لهذه الصفحة فان النظام سيقوم حالا بعمل نسخة لهذه الصفحة ويخزنها في المجلد .</p>
<p>اعلم بماذا يفكر قسم كبير منكم الآن &#8230; لسان حالهم يقول : &#8221; ماذا يقول هذا المجنون &#8230; فالصفحات الديناميكية اسم على مسمى وهي تتميز عن الصفحات العادية بكون بياناتها تتغير باستمرار فمثلا موقع للاخبار او منتدى يمكن ان يتغير محتوى الصفحة فيه كل دقيقة او اقل فاذا استعملنا هذه الخاصية عندها سيقوم السيرفر بتخزين نسخ للصفحات في وقت معين &#8230;  وبعد مدة من الزمن يقوم صاحب الموقع بتجديد البيانات عندها سيدخل الزائر ويرى نفس المحتوى القديم ولن يرى البيانات الجديدة وبالتالي سوف يخرج من الموقع معتقدا بانه لا يأتي بجديد &#8221; !!</p>
<p>هذا التفكير جميل جدا ويدل على الفهم السليم للفرق بين الصفحات العادية والصفحات ذات المحتوى الديناميكي وهذا سيساعد اصحاب هؤلاء الادعاء بفهم الفكرة عندما سنقوم بعرضها برمجيا وابشرهم بان هناك حل مناسب جدا لهذه المشكلة .</p>
<p>في الحقيقة فان في هذا النظام الرائع يوجد عداد يحسب وقت او فترة الاغراق لكل ملف داخل مجلد cache فعندما يقوم النظام بانشاء ملف cache  جديد فان فان من ضمن الخصائص التي تسجل لهذا الملف وكأي ملف اخر في انظمة الحواسيب يسجل تاريخ انشاء الملف مع الوقت بدقة &#8230;</p>
<p>في بداية الملف النظام نقوم بتحديد فترة الاغراق للنظام بشكل عام وهذه الفترة يحددها كل صاحب موقع حسب اختياره فهناك اشخاص يتوقعون ان افضل فترة اغراق للموقع هي 10 دقائق ومنهن ما يتوقع بان 10 دقائق ليست كافية وانما 5 تكون انسب .</p>
<p>وفترة الاغراق هي المدة الزمنية ( يمكن ان تكون بالدقائق او الثواني او الساعات او اكثر ) التي تمر منذ انشاء ملف الـ cache  وحتى انتهاء هذه المدة وهذا يعني انني ان قمت بتحديد فترة الاغراق 10 دقائق في الموقع مثلا فان اي زائر يدخل سيقوم نظام  تحزين المحتوى  &#8220;  Output Caching&#8221; بفحص شرطين اساسيين اما الاول فانه يفحص اذا ما كانت الصفحة التي نقوم بتصفحها مدرجة ضمن &#8220;صفحات التجاهل&#8221; وهي الصفحات التي نوفق عمل نظام التخزين عند الدخول اليها , بمعنى اننا نريد من السيرفر ان يعالج الاكواد البرمجية لهكذا نوع من الصفحات كل مرة ندخل فيها للصفحة ولا يقوم بتخزين نسخ لها في مجلد الـ cache  .</p>
<p>اما الشرط الثاني وهو الخاص بفترة الاغراق &#8230; حيث يقوم النظام بالتحقق من صلاحية ملف cache  &#8230; بمعنى انه اذا كان قد مر 10 دقائق او اكثر على انشاء هذا الملف فان النظام سيقوم تلقائيا بتجديد محتوى الملف وادخال البيانات المحدثة اليه من خلال تشغيل الصفحة الديناميكية بشكل عادي &#8230; واما اذا لم يتحقق هذا الشرط اي انه لما يمر لحد الان سوى 5 دقائق مثلا من اصل 10 &#8230; فان النظام سيقوم باستخراج المحتوى المخزن للصفحة الحالية من المجلد cache وعرضه لنا وهكذا فانه لن يكرر نفس العمليات والاستعلامات التي سوف يكررها فيما لو لم يكن الموقع يحوي على هذا النظام , وعليه فانه سوف يخرج لنا المحتوى الـ html  المترجم للصفحة  وهذا لن يكلف السيرفر شي من الضغط او تبادل البيانات .</p>
<p>الآن وقد قمنا ببلورة الفكرة نظريا وسننتقل الآن للقسم العملي ( البرمجي ) من هذا المقال وفيه سوف نعرض الكود اللازم لكي نمتلك نظام تخزين خاص بموقعنا , ينقسم الكود لقسمين &#8230; قسم نقوم بوضعه قبل كود الصفحة نفسها &#8230; والقسم الاخر نقوم بوضعه بعد الانتهاء من كتابة كود الصفحة .</p>
<p>الكود البرمجي الذي سنضعه في بداية الصفحة وقبل الشروع بكتابة الكود الاساسي :</p>
<div style="border:1px solid #999999;float:right;width:98%;direction:ltr;background-color:#f2f2f2;text-align:left;padding:2px;">
<h5><span style="color:#ff9900;">Code :</span></h5>
<p>&lt;?</p>
<p>// الاعدادات العامة<br />
$cachedir = &#8216;cachefold/&#8217;; // مسار مجلد الكاش في الموقع &#8211; مفضل ان تبقيه خارج مجلد الروت<br />
$cachetime = &#8216;10&#8242;; // فترة الاغراق بالدقائق<br />
$cacheext = &#8216;cache&#8217;; // امتداد ملفات الكاش التي سوف تخزن في مجلد الكاش &#8211; عادة ما يكون cache,html,txt</p>
<p>// قائمة التجاهل<br />
$ignore_list = array(<br />
&#8216;page1.php&#8217;,<br />
&#8216;page2.php&#8217;<br />
&#8216;page3.php&#8217;<br />
// يمكنك ان تضع اي صفحة لتكون في هذه المصفوفة<br />
);</p>
<p>// بداية تنفيذ الكود<br />
$page = &#8216;http://&#8217; . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; // طلب عنوان الصفحة الحالية<br />
$cachefile = $cachedir . $style . md5($page) . &#8216;.&#8217; . $cacheext; // تعريف ملف الكاش اما لاستيراده او لبنائه</p>
<p>$ignore_page = false; // اعطاء الصفحة الصفة الملائمة اما صفحة عادية او ضمن قائمة التجاهل<br />
for ($i = 0; $i &lt; count($ignore_list); $i++) {<br />
$ignore_page = (strpos($page, $ignore_list[$i]) !== false) ? true : $ignore_page;<br />
}</p>
<p>$cachefile_created = ((@file_exists($cachefile)) and ($ignore_page === false)) ? @filemtime($cachefile) : 0; // فحص صلاحية ملف الكاش حسب الشروط التي ذكرناها في الاعلى<br />
@clearstatcache();</p>
<p>// فحص اذا كان ملف الكاش لهذه الصفحة ملائم ام انه تجاوز فترة الاغراق<br />
if (time() &#8211; $cachetime &lt; $cachefile_created) {</p>
<p>// اذا كان الملف ملائم فان النظام سيقوم باستخراج محتواه وعرضها للزائر</p>
<p>ob_start(&#8216;ob_gzhandler&#8217;);<br />
@readfile($cachefile);<br />
ob_end_flush();<br />
exit();</p>
<p>}</p>
<p>// اذا لم يتحقق الشرط السابق فاننا بحاجة لبناء ملف كاش جديد لهذه الصفحة</p>
<p>ob_start();<br />
}</p>
<p>?&gt;</p></div>
<p><span style="color:#ff0000;">والآن سنعرض الكود البرمجي والذي سنضعه بعد كتابة الكود الاساسي للصفحة :</span></p>
<div style="border:1px solid #999999;float:right;width:98%;direction:ltr;background-color:#f2f2f2;text-align:left;padding:2px;">
<h5><span style="color:#ff9900;">Code :</span></h5>
<p>&lt;?</p>
<p>if ($ignore_page === false){<br />
// اذا لم تكن هذه الصفحة ضمن قائمة التجاهل فان النظام سيقوم بقرائه كود الهتمل لهذه الصفحة<br />
$fp = @fopen($cachefile, &#8216;w&#8217;);</p>
<p>// بعد القراءة يقوم النظام بحفظ كود الهتمل داخل ملف كاش جديد في مجلد الكاش<br />
@fwrite($fp, ob_get_contents());<br />
@fclose($fp);<br />
}</p>
<p>ob_end_flush();<br />
}</p>
<p>?&gt;</p></div>
<p>والان اخواني وبعد الشرح الممل اعتقد بان كل شي واضح &#8230; ولكن هذا الكود هو النواة فقط  فهناك الامكانية لتطويره بشكل كبير وخيالي &#8230; وضعت بين ايديكم المواد الخام والابداع يكمن في تطوير التقنيات والطرق الخلاقة للوصول لمستوى مقبول في عالم البرمجة .</p>
<p>اقبل النقد البناء &#8230; على استعداد للاجابة عن اي سؤال او استفسار وفي النهاية اذكركم مرة اخرى وانصحكم <span style="color:#ff0000;">بعدم كتمان العلم</span> .</p>
<p>اخوكم المحب :EbNCaNa</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ebncana.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ebncana.wordpress.com/223/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ebncana.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ebncana.wordpress.com/223/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ebncana.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ebncana.wordpress.com/223/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ebncana.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ebncana.wordpress.com/223/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ebncana.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ebncana.wordpress.com/223/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ebncana.wordpress.com&blog=3685320&post=223&subd=ebncana&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ebncana.wordpress.com/2008/11/14/%d8%af%d8%b1%d8%b3-%d9%86%d8%b8%d8%a7%d9%85-%d8%aa%d8%ae%d8%b2%d9%8a%d9%86-%d8%a7%d9%84%d9%85%d8%ae%d8%b1%d8%ac%d8%a7%d8%aa-cache-output-%d8%a8%d8%a7%d9%84%d8%b4%d8%b1%d8%ad-%d8%a7%d9%84%d9%85/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/58457a05776d42c2f553bd153e6b184b?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">EbNCaNa</media:title>
		</media:content>
	</item>
		<item>
		<title>درس : كيفية استخراج مواضيع ذات صلة من القاعدة</title>
		<link>http://ebncana.wordpress.com/2008/10/01/%d8%af%d8%b1%d8%b3-%d9%83%d9%8a%d9%81%d9%8a%d8%a9-%d8%a7%d8%b3%d8%aa%d8%ae%d8%b1%d8%a7%d8%ac-%d9%85%d9%88%d8%a7%d8%b6%d9%8a%d8%b9-%d8%b0%d8%a7%d8%aa-%d8%b5%d9%84%d8%a9-%d9%85%d9%86-%d8%a7%d9%84/</link>
		<comments>http://ebncana.wordpress.com/2008/10/01/%d8%af%d8%b1%d8%b3-%d9%83%d9%8a%d9%81%d9%8a%d8%a9-%d8%a7%d8%b3%d8%aa%d8%ae%d8%b1%d8%a7%d8%ac-%d9%85%d9%88%d8%a7%d8%b6%d9%8a%d8%b9-%d8%b0%d8%a7%d8%aa-%d8%b5%d9%84%d8%a9-%d9%85%d9%86-%d8%a7%d9%84/#comments</comments>
		<pubDate>Wed, 01 Oct 2008 09:55:23 +0000</pubDate>
		<dc:creator>EbNCaNa</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[EbNCaNa]]></category>
		<category><![CDATA[EbNCaNa.com]]></category>
		<category><![CDATA[فلسطين]]></category>
		<category><![CDATA[فلسطين 48]]></category>
		<category><![CDATA[قانا الجليل]]></category>
		<category><![CDATA[قاعدة]]></category>
		<category><![CDATA[كفركنا]]></category>
		<category><![CDATA[كيفية]]></category>
		<category><![CDATA[لغه]]></category>
		<category><![CDATA[لغة]]></category>
		<category><![CDATA[من]]></category>
		<category><![CDATA[مواضيع]]></category>
		<category><![CDATA[القاعده]]></category>
		<category><![CDATA[القاعدة]]></category>
		<category><![CDATA[البيانات]]></category>
		<category><![CDATA[البرمجة]]></category>
		<category><![CDATA[ابن قانا]]></category>
		<category><![CDATA[استخراج]]></category>
		<category><![CDATA[بلغه]]></category>
		<category><![CDATA[بلغة]]></category>
		<category><![CDATA[برمجة]]></category>
		<category><![CDATA[درس]]></category>
		<category><![CDATA[ذات]]></category>
		<category><![CDATA[شرح]]></category>
		<category><![CDATA[صلة]]></category>
		<category><![CDATA[عرب 48]]></category>

		<guid isPermaLink="false">http://ebncana.wordpress.com/?p=209</guid>
		<description><![CDATA[السلام عليكم ورحمة الله وبركاته
اخواني اخواتي درسنا اليوم جميل وفيه حركة جميلة تستعملها اغلب انظمة ادارة المحتوى وخاصة المنتديات على انواعها &#8230; هذا الدرس للمتسوى المتقدم في لغة البرمجة php واتمنى ان يستفيد القدر الاكبر من الاخوة .
درسنا اليوم عن كيفية استخراج نتائج ذات صلة من قاعدة البيانات وهنا لا اقصد عن مواضيع متشابة 100% [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ebncana.wordpress.com&blog=3685320&post=209&subd=ebncana&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>السلام عليكم ورحمة الله وبركاته</p>
<p>اخواني اخواتي درسنا اليوم جميل وفيه حركة جميلة تستعملها اغلب انظمة ادارة المحتوى وخاصة المنتديات على انواعها &#8230; هذا الدرس <span style="color:#ff0000;">للمتسوى المتقدم </span>في لغة البرمجة php واتمنى ان يستفيد القدر الاكبر من الاخوة .</p>
<p>درسنا اليوم عن كيفية استخراج نتائج ذات صلة من قاعدة البيانات وهنا لا اقصد عن مواضيع متشابة 100% انما اقصد ذات علاقة او صلة , نرى بالكثير من المنتديات باسفل كل موضوع في مكان خاص لعرض المواضيع التي لها علاقة بالموضوع الذي تقوم بتصفحه والامر لا يقتصر فقط على المنتديات انما على مواقع اخبارية مثلا تريد ان تعرف اخبار متعلقة مثلما الحال بموقع اسلام اونلاين مثلا .</p>
<p><span id="more-209"></span></p>
<p>نبدأ بسم الله</p>
<p><span style="color:#0000ff;">ان الفكرة المركزية في الكود هو استعلام الـ SQL وكود الـ php المرفق فقط للتوضيح وتبسيط الفكرة :</span></p>
<div style="border:1px solid #999999;float:right;width:98%;direction:ltr;background-color:#f2f2f2;text-align:left;padding:2px;">
<h5><span style="color:#ff9900;">Code :</span></h5>
<p>&lt;?</p>
<p>$SimT = mysql_query(&#8220;SELECT tID,tTi FROM db_name WHERE tID != $tID AND MATCH (tTi) AGAINST (&#8216;$tTi&#8217; IN BOOLEAN MODE) ORDER BY &#8216;tID&#8217; DESC LIMIT 0,5 &#8220;);</p>
<p>while($rowt = mysql_fetch_array($SimT)){</p>
<p>$ID = $rowt["tID"];<br />
$Title = $rowt["tTi"];</p>
<p>echo&#8221;&lt;a href=$PHP_SELF?showtopic=$ID&gt;$Title&lt;/a&gt;&#8221;;</p>
<p>}</p>
<p>?&gt;</p></div>
<p><span style="color:#ff0000;">شرح الاستعلام</span> : نطلب في البداية رقم الموضوع وعنوان الموضوع من الجدول المخصص في قاعدة البيانات ثم نبدأ بوضع الشروط اما الاول فهو ان لا تخرج القاعدة نفس الموضوع الجاري مقارنته حاليا واما الشرط الثاني فهو ان تتم مطابقة عنوان الموضوع الحالي بجميع المواضيع في القاعدة واخراج 5 نتائج ويكون الترتيب حسب رقم الموضوع بترتيب تصاعدي .</p>
<p><span style="color:#ff0000;">شرح الكود </span>: حلقة تكرار while واخراج النتائج حسب الاستعلام في الاعلى ومن ثم طباعة العنوان مع الرابط الخاص به .</p>
<p><span style="color:#008000;">ارجوا ان يكون هذا الدرس مفيد لجميع الاخوة ودايما كل شي قابل للتطوير والنقد البناء واي ملاحظة او استفساء او نصيحة سوف تأخذ بالحسبان ان شاء الله .</span></p>
<p>اخوكم المحب : EbNCaNa</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ebncana.wordpress.com/209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ebncana.wordpress.com/209/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ebncana.wordpress.com/209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ebncana.wordpress.com/209/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ebncana.wordpress.com/209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ebncana.wordpress.com/209/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ebncana.wordpress.com/209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ebncana.wordpress.com/209/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ebncana.wordpress.com/209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ebncana.wordpress.com/209/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ebncana.wordpress.com&blog=3685320&post=209&subd=ebncana&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ebncana.wordpress.com/2008/10/01/%d8%af%d8%b1%d8%b3-%d9%83%d9%8a%d9%81%d9%8a%d8%a9-%d8%a7%d8%b3%d8%aa%d8%ae%d8%b1%d8%a7%d8%ac-%d9%85%d9%88%d8%a7%d8%b6%d9%8a%d8%b9-%d8%b0%d8%a7%d8%aa-%d8%b5%d9%84%d8%a9-%d9%85%d9%86-%d8%a7%d9%84/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/58457a05776d42c2f553bd153e6b184b?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">EbNCaNa</media:title>
		</media:content>
	</item>
		<item>
		<title>درس : دالة php لعمل مسار الطريق Bread Crumbs</title>
		<link>http://ebncana.wordpress.com/2008/09/07/%d8%af%d8%b1%d8%b3-%d8%af%d8%a7%d9%84%d8%a9-php-%d9%84%d8%b9%d9%85%d9%84-%d9%85%d8%b3%d8%a7%d8%b1-%d8%a7%d9%84%d8%b7%d8%b1%d9%8a%d9%82-bread-crumbs/</link>
		<comments>http://ebncana.wordpress.com/2008/09/07/%d8%af%d8%b1%d8%b3-%d8%af%d8%a7%d9%84%d8%a9-php-%d9%84%d8%b9%d9%85%d9%84-%d9%85%d8%b3%d8%a7%d8%b1-%d8%a7%d9%84%d8%b7%d8%b1%d9%8a%d9%82-bread-crumbs/#comments</comments>
		<pubDate>Sun, 07 Sep 2008 15:16:32 +0000</pubDate>
		<dc:creator>EbNCaNa</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[Bread Crumbs]]></category>
		<category><![CDATA[EbNCaNa]]></category>
		<category><![CDATA[EbNCaNa.com]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[Recursive Functions in PHP]]></category>
		<category><![CDATA[فلسطين]]></category>
		<category><![CDATA[فلسطين 48]]></category>
		<category><![CDATA[قانا الجليل]]></category>
		<category><![CDATA[قاعدة البيانات]]></category>
		<category><![CDATA[كفركنا]]></category>
		<category><![CDATA[كود]]></category>
		<category><![CDATA[كائن]]></category>
		<category><![CDATA[مبرمج]]></category>
		<category><![CDATA[مسار]]></category>
		<category><![CDATA[القاعده]]></category>
		<category><![CDATA[القاعدة]]></category>
		<category><![CDATA[الاستدعاء]]></category>
		<category><![CDATA[البرمجة]]></category>
		<category><![CDATA[الذاتي]]></category>
		<category><![CDATA[الطريق]]></category>
		<category><![CDATA[ابن قانا]]></category>
		<category><![CDATA[بي اتش بي]]></category>
		<category><![CDATA[برمجه]]></category>
		<category><![CDATA[برمجيه]]></category>
		<category><![CDATA[برمجة]]></category>
		<category><![CDATA[برمجة php]]></category>
		<category><![CDATA[داله]]></category>
		<category><![CDATA[دالة]]></category>
		<category><![CDATA[درس]]></category>
		<category><![CDATA[عمل]]></category>
		<category><![CDATA[عرب 48]]></category>

		<guid isPermaLink="false">http://ebncana.wordpress.com/?p=186</guid>
		<description><![CDATA[السلام عليكم ورحمة الله وبركاته
كيف حالكوا ان شاء الله خير ؟؟ كيف انتوا ورمضان ؟؟ كلو تمام ؟؟ الي ما بصوم يطلع من الموقع بسرعة &#8230; حتى كمان شوي بدي ابني دالة تعرف اذا الي فايت على الموقع صايم او لا &#8230; اذا مش صايم بتعملو طرد اوتوماتيكي !! مش تسدقوا بمزح :p
المهم يا جماعة [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ebncana.wordpress.com&blog=3685320&post=186&subd=ebncana&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>السلام عليكم ورحمة الله وبركاته</p>
<p>كيف حالكوا ان شاء الله خير ؟؟ كيف انتوا ورمضان ؟؟ كلو تمام ؟؟ الي ما بصوم يطلع من الموقع بسرعة &#8230; حتى كمان شوي بدي ابني دالة تعرف اذا الي فايت على الموقع صايم او لا &#8230; اذا مش صايم بتعملو طرد اوتوماتيكي !! مش تسدقوا بمزح :p</p>
<p>المهم يا جماعة اليوم درسنا حلو كثير وفيو شرح لكيفية عمل وبناء دالة بلغة php وظيفتها تعمل مسار الطريق Bread Crumbs لأي صفحة موجود بالسكربت او البرمجية الي عندك &#8230; وعشان تزبط هيك دالة لازم تتوفر بعض الشروط البسيطة .</p>
<p>هذا الدرس <span style="color:#ff0000;">للمتسوى المتقدّم</span> في لغة php وفيه سنشرح كيفية بناء هذه الدالة مع مثال مفصل لطريقة استدعائها .</p>
<p><span id="more-186"></span></p>
<p>في البداية اخواني اخواتي نقوم ببناء جدول قاعدة البيانات الذي سيكون احد نجوم هذا الدرس &#8230; نفرض ان لدينا سكربت للاخبار وفيه وكل خبر يتم اضافته يجب ان ينتمي لاحد اقسام الموقع &#8230; وبذلك نعم اننا بالضرورة نملك جدول للاقسام &#8230; في هذا الجدول سنقوم باضافة 3 حقول ضرورية للعمل عليها والتي ستقوم بتشغيل دالة مسار الطريق .</p>
<p><span style="color:#ff0000;">الحقول التي نحتاجها في قاعدة البيانات :</span></p>
<p>1- حقل رقم القسم id من نوع int</p>
<p>2- حقل رقم القسم الاب  parent  من نوع int</p>
<p>3- حقل اسم القسم  من نوع varchar</p>
<p><span style="color:#0000ff;">ملاحظة</span> : الحقل parent سيحوي القيمة 0 بحالة كان القسم هو قسم رئيسي اي انه لا يتبع لقسم آخر .</p>
<p>الآن سنقوم باستعراض كود الدالة ومن ثم شرحها بالتفصيل مع طريقة استدعائها :</p>
<div style="border:1px solid #999999;float:right;width:98%;direction:ltr;background-color:#f2f2f2;text-align:left;padding:2px;">
<h5><span style="color:#ff9900;">Code :</span></h5>
<p>&lt;?</p>
<p>function Gpath($cid, $pathArray = array()){<br />
if($cid !== &#8220;0&#8243;){<br />
$sql = mysql_query(&#8220;select c_id,c_sub,c_parent,c_title from category where id=$cid&#8221;);</p>
<p>if(mysql_num_rows($sql) == 1) {<br />
$row = mysql_fetch_assoc($sql);<br />
array_unshift($pathArray, $row);<br />
return Gpath($row['c_sub'], $pathArray);<br />
}<br />
}</p>
<p>return $pathArray;<br />
}</p>
<p>?&gt;</p></div>
<p>طريقة الاستدعاء :</p>
<div style="border:1px solid #999999;float:right;width:98%;direction:ltr;background-color:#f2f2f2;text-align:left;padding:2px;">
<h5><span style="color:#ff9900;">Code :</span></h5>
<p>&lt;?</p>
<p>// هو متغير رقم القسم الذي نريد جلب مسار الطريق المؤدي اليه $id</p>
<p>$path = Gpath($id);<br />
foreach($path as $item) {<br />
echo &#8221; &gt; &lt;a href=&#8217;cats.php?id=$item[c_id]&#8216;&gt;$item[c_title]&lt;/a&gt;&#8221;;<br />
}</p>
<p>?&gt;</p></div>
<p>شرح الدالة :</p>
<p>في البداية حبايبي نقوم باستدعاء الدالة عن طريق امر الاستدعاء والذي يجب ان ندخل اليه رقم القسم المراد جلب مسار الطريق الذي سؤدي اليه &#8230; وثم نقوم باستخراج النتائج من المصفوفة التي قامت الدالة بتوليدها عن طريق foreach .</p>
<p>في بداية عمل الدالة نقوم بادخال البارمترات التي سنقوم بمعالجتها &#8230; وهنا في هذه الدالة سنقوم بمعالجة برامتر رقم القسم اما البارمتر الثاني فهو عبارة عن مصفوفة array والتي ستكون فارغة في بداية تنفيذ الدالة .</p>
<p>في السطر الثاني للدالة سوف نتحقق من ان رقم القسم الذي قمنا بادخاله لا يساوي 0 &#8230; لانه ان كان كذلك فانه سيكون قسم رئيسي وبالتالي فانه لا يتبع لأي قسم اخر وهذا يعني اننا لا نحتاج لعمل مسار الطريق بحالة كان المستخدم في صفحة القسم الرئيسي .</p>
<p>في السطر الثالث قمنا بالاستعلام من قاعدة البيانات عن رقم وعنوان ورقم القسم الاب للقسم الذي سوف تعالجه الدالة وقمنا بتحديد الاستعلام بواسطة cid$ وهو رقم القسم &#8230; في السطر الرابع نقوم بالتأكد من ان نتائج معينة قد نتجت من هذا الاستعلام فاذا كانت نتيجة الشرط 1 .. اي ان هناك نتيجة واحدة لهذا الاستعلام فانه سينتقل لتنفيذ السطر الخامس .</p>
<p>في السطر الخامس تقوم الادالة باستخراج الحقول التي قمنا بالاستعلام عنها على شكل مصفوفة وهذا بفضل استعمال mysql_fetch_assoc .</p>
<p>في السطر السادس نقوم باستعمال الدالة array_unshift ووظيفة هذه الدالة هي دمج اكثر من مصفوفة في مصفوفة واحدة واخر مصفوفة تدخل اليها هي الاولى في الترتيب عند استخراج بيانات المصفوفة .</p>
<p>في السطر السابع نقوم باستدعاء الدالة Gpath بالكامل &#8230; اي اننا قمنا باستدعاء الدالة من داخل نفسها اي ان الدالة تقوم باستدعاء نفسها ذاتيا لتقوم باستخراج جميع اسماء الاقسام التي يتبع لها القسم الهدف بالتسلسل وهذا الامر يولد لنا مسار الطريق .</p>
<p><span style="color:#0000ff;">اسلوب الاستدعاء الذاتي للدالة او Recursive Functions بالانجليزية سنقوم بالحديث عنه لاحقا في موضوع وشرح منفصل .</span></p>
<p>في السطر الثامن والتاسع قمنا باغلاق حالات الشرط التي قمنا باستخدامها اما في السطر العاشر فقمنا بارجاع قيمة المصفوفة التي تحوي مسار الطريق وفي السطر الحادي عشر اغلقنا الدالة .</p>
<p><span style="color:#003300;">وفي النهاية اخواني اتمنى انني قد افدت من كان يبحث عن الفائدة في هذا المجال واتمنى عدم التردد من قبلكم بحالة كان هناك اي سؤال او استفسار حول هذا الموضوع او اي موضوع اخر في المدونة .</span></p>
<p>اخوكم EbNCaNa</p>
<p>سلامات ورمضان كريم .</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ebncana.wordpress.com/186/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ebncana.wordpress.com/186/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ebncana.wordpress.com/186/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ebncana.wordpress.com/186/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ebncana.wordpress.com/186/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ebncana.wordpress.com/186/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ebncana.wordpress.com/186/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ebncana.wordpress.com/186/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ebncana.wordpress.com/186/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ebncana.wordpress.com/186/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ebncana.wordpress.com/186/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ebncana.wordpress.com/186/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ebncana.wordpress.com&blog=3685320&post=186&subd=ebncana&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ebncana.wordpress.com/2008/09/07/%d8%af%d8%b1%d8%b3-%d8%af%d8%a7%d9%84%d8%a9-php-%d9%84%d8%b9%d9%85%d9%84-%d9%85%d8%b3%d8%a7%d8%b1-%d8%a7%d9%84%d8%b7%d8%b1%d9%8a%d9%82-bread-crumbs/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/58457a05776d42c2f553bd153e6b184b?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">EbNCaNa</media:title>
		</media:content>
	</item>
		<item>
		<title>درس : بناء دالة php لاستخراج جميع الاقسام الفرعية والرئيسية من القاعدة</title>
		<link>http://ebncana.wordpress.com/2008/08/08/%d8%af%d8%b1%d8%b3-%d8%a8%d9%86%d8%a7%d8%a1-%d8%af%d8%a7%d9%84%d8%a9-php-%d9%84%d8%a7%d8%b3%d8%aa%d8%ae%d8%b1%d8%a7%d8%ac-%d8%ac%d9%85%d9%8a%d8%b9-%d8%a7%d9%84%d8%a7%d9%82%d8%b3%d8%a7%d9%85-%d8%a7/</link>
		<comments>http://ebncana.wordpress.com/2008/08/08/%d8%af%d8%b1%d8%b3-%d8%a8%d9%86%d8%a7%d8%a1-%d8%af%d8%a7%d9%84%d8%a9-php-%d9%84%d8%a7%d8%b3%d8%aa%d8%ae%d8%b1%d8%a7%d8%ac-%d8%ac%d9%85%d9%8a%d8%b9-%d8%a7%d9%84%d8%a7%d9%82%d8%b3%d8%a7%d9%85-%d8%a7/#comments</comments>
		<pubDate>Fri, 08 Aug 2008 17:51:25 +0000</pubDate>
		<dc:creator>EbNCaNa</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[categories]]></category>
		<category><![CDATA[category]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[coder]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[EbNCaNa]]></category>
		<category><![CDATA[EbNCaNa.com]]></category>
		<category><![CDATA[from]]></category>
		<category><![CDATA[function]]></category>
		<category><![CDATA[get]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[output]]></category>
		<category><![CDATA[query]]></category>
		<category><![CDATA[select]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[sub]]></category>
		<category><![CDATA[subcategories]]></category>
		<category><![CDATA[subcategory]]></category>
		<category><![CDATA[table]]></category>
		<category><![CDATA[unlimited]]></category>
		<category><![CDATA[فلسطين]]></category>
		<category><![CDATA[فرعية]]></category>
		<category><![CDATA[قانا الجليل]]></category>
		<category><![CDATA[قائمة منسدلة]]></category>
		<category><![CDATA[كفركنا]]></category>
		<category><![CDATA[كود]]></category>
		<category><![CDATA[كيفيه]]></category>
		<category><![CDATA[كيفية]]></category>
		<category><![CDATA[كتابة]]></category>
		<category><![CDATA[لاستخراج]]></category>
		<category><![CDATA[من]]></category>
		<category><![CDATA[مالا]]></category>
		<category><![CDATA[نهاية]]></category>
		<category><![CDATA[والرئيسية]]></category>
		<category><![CDATA[اقسام]]></category>
		<category><![CDATA[الفرعية]]></category>
		<category><![CDATA[القاعدة]]></category>
		<category><![CDATA[الى]]></category>
		<category><![CDATA[الاقسام]]></category>
		<category><![CDATA[ابن قانا]]></category>
		<category><![CDATA[استخراج]]></category>
		<category><![CDATA[بناء]]></category>
		<category><![CDATA[بدون حدود]]></category>
		<category><![CDATA[جميع]]></category>
		<category><![CDATA[حد]]></category>
		<category><![CDATA[داله]]></category>
		<category><![CDATA[دالة]]></category>
		<category><![CDATA[درس]]></category>
		<category><![CDATA[شرح]]></category>
		<category><![CDATA[صناعة]]></category>

		<guid isPermaLink="false">http://ebncana.wordpress.com/?p=159</guid>
		<description><![CDATA[السلام عليكم ورحمة والله وبركاته
اخواني واخواتي اليوم درسنا مهم وشيق جدا وفيه شرح لكيفية بناء دالة بلغة php وظيفتها استخراج جميع الاقسام الفرعية والرئيسية من قاعدة البيانات ثم عرضها بشكل مرتب وواضح في قائمة منسدلة &#8230; اعتقد جازما ان هذه الدالة ليست موجودة بأي موقع او منتدى عربي لحد الآن مع ان الاخ coder مشرف [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ebncana.wordpress.com&blog=3685320&post=159&subd=ebncana&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>السلام عليكم ورحمة والله وبركاته</p>
<p>اخواني واخواتي اليوم درسنا مهم وشيق جدا وفيه شرح لكيفية بناء دالة بلغة php وظيفتها استخراج جميع الاقسام الفرعية والرئيسية من قاعدة البيانات ثم عرضها بشكل مرتب وواضح في قائمة منسدلة &#8230; اعتقد جازما ان هذه الدالة ليست موجودة بأي موقع او منتدى عربي لحد الآن مع ان الاخ coder مشرف قسم لغة بي اتش بي في <a href="http://www.montadaphp.net" target="_blank">منتدى بي اتش بي</a> قام بمحاولة ممتازة لبناء مثل هكذا دالة ونجحت التجربة بنسبة 80% على حد تقديري والسبب بعدم كون نجاحها كامل هو انه بقيت مشكلة في احد اجزاء الكود والذي سبب بتكرار علامة &gt; اكثر من المطلوب اما الامر الاخر كون الدالة لم تخصص لتستعمل في لوحة تحكم بواسطة قائمة منسدلة وانما كانت طريقة عرضها نصية فقط &#8230; لمتابعة الموضوع <a href="http://www.montadaphp.net/showthread.php?t=486" target="_blank">هنا</a> وبكل الاحوال اهنيء اخي الاستاذ coder على الجهد الرائع .</p>
<p>هذا الدرس <span style="color:#ff0000;">للمتسوى المتقدّم</span> في لغة php وفيه سنشرح كيفية بناء هذه الدالة مع مثال مفصل لطريقة استدعاء هذه الدالة .</p>
<p><span id="more-159"></span></p>
<p>نبدأ بسم الله</p>
<p>يجب في البداية ان <span style="color:#ff0000;">نقوم ببناء الجدول</span> الذي سيحوي الاقسام ثم نقوم ببناء 3 حقول في داخله والتي ستكون الحقول الاساسية في عملية ادارة هذه الدالة وهي كالتالي :</p>
<p>1- حقل رقم القسم id<br />
2- حقل اسم القسم<br />
3- حقل رقم القسم الاب او القسم الاساسي</p>
<p><span style="color:#ff0000;">شرح الدالة نظريا : </span></p>
<p>تقوم الدالة باستدعاء جميع الاقسام التي قمنا بادخالها للقاعدة وبعد استدعاء الاقسام الرئيسية تقوم الدالة بشكل متتالي باستخراج جميع الاقسام الفرعية المنطوية تحت كل قسم الرئيسي وهذا الامر يتم عن طريق تكرار او استدعاء الدالة لنفسها recursive function فعندما تعلم الدالة عن وجود قسم فرعي صاحب رقم 2 مثلا &#8230; فانها تذهب لتعرف لأي قسم رئيسي يتبع هذا القسم من خلال حقل رقم القسم الاب parent id والذي سوف يحوي رقم معين بكل قسم فرعي باستثناء عندما يكون في تركيبة قسم رئيسي فان قيمته سوف تكون 0 .</p>
<p><span style="color:#ff0000;">عرض الدالة :</span></p>
<div style="float:right;width:98%;direction:ltr;background-color:#f2f2f2;text-align:left;border:#999999 1px solid;padding:2px;">
<h5><span style="color:#ff9900;">Code :</span></h5>
<p>&lt;?</p>
<p>// مبنى الدالة</p>
<p>function getAllCats($id=0) {</p>
<p>////////// ابدأ التعديل من هنا //////////</p>
<p>$name_t = &#8220;category&#8221;; // اسم جدول الاقسام<br />
$id_f = &#8220;cat_id&#8221;; // id اسم الحقل الذي يحوي رقم القسم<br />
$name_f = &#8220;cat_name&#8221;; // اسم الحقل الذي يحوي اسم القسم<br />
$parent_f = &#8220;cat_sub&#8221;; // parent اسم الحقل الذي يحوي رقم القسم الاساسي</p>
<p>////////// الانتهاء من التعديل //////////</p>
<p>static $cates = array();<br />
static $tnum = 0;</p>
<p>$tnum++;<br />
$result = mysql_query(&#8220;SELECT $id_f,$name_f FROM $name_t WHERE $parent_f=$id ORDER BY $name_f&#8221;);<br />
while($row = mysql_fetch_assoc($result))<br />
{<br />
$cates[$row[$id_f]] = str_repeat(&#8220;|-&#8221;,$tnum-1).&#8221;|&#8212;&gt; &#8220;.$row[$name_f];<br />
getAllCats($row[$id_f]);<br />
}<br />
$tnum = $tnum-1;<br />
return $cates;<br />
}</p>
<p>// استدعاء الدالة</p>
<p>echo &#8220;&lt;select&gt;<br />
&lt;option value=&#8217;0&#8242;&gt;قسم رئيسي&lt;/option&gt;&#8221;;<br />
$allcats = getAllCats();<br />
foreach($allcats as $key=&gt;$value) {<br />
echo &#8220;&lt;option value=&#8217;$key&#8217;&gt;$value&lt;/option&gt;&#8221; ;<br />
}<br />
echo &#8220;&lt;/select&gt;&#8221;;</p>
<p>?&gt;</p></div>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p>طريقة استدعاء الدالة بغاية السهولة لانها لا تحتاج لكتابة الاستعلام من جديده كون الاخير قد تم طلبه في مبنى الدالة نفسها وطريقة الاستدعاء هذه مصممة لكي تتلائم مع مبنى اي لوحة تحكم فمثلا تحوي لوحة تحكم الموقع اضافة قسم وتعديل قسم وحذف قسم &#8230; هذه الدالة يمكن استعمالها عندما نريد اضافة قسم او تعديل قسم .</p>
<p><a href="http://www.ebncana.com/upload/filez/841d28ee68.html" target="_blank"><img class="alignnone" style="border:0;" src="http://www.ebncana.com/upload/extension/zip.gif" border="0" alt="ت�ميل الكود داخل ملف" width="100" height="100" /></a></p>
<p>اتمنى انكم قد استفدتم من هكذا دالة لانها قيمة جدا واعرف بان الكثيرين طالما بحثوا ويبحثوا عنها بهكذا جودة وكالعادة &#8230; ادعوكم بعدم التردد بحالة اردتم كتابة اي تعليق او اي سؤال او استفسار بخصوص هذه الدالة وسنقوم بالرد عليكم باقرب وقت ممكن ان شاء الله .</p>
<p> </p>
<p>اخوكم المحب : EbNCaNa</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ebncana.wordpress.com/159/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ebncana.wordpress.com/159/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ebncana.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ebncana.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ebncana.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ebncana.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ebncana.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ebncana.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ebncana.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ebncana.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ebncana.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ebncana.wordpress.com/159/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ebncana.wordpress.com&blog=3685320&post=159&subd=ebncana&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ebncana.wordpress.com/2008/08/08/%d8%af%d8%b1%d8%b3-%d8%a8%d9%86%d8%a7%d8%a1-%d8%af%d8%a7%d9%84%d8%a9-php-%d9%84%d8%a7%d8%b3%d8%aa%d8%ae%d8%b1%d8%a7%d8%ac-%d8%ac%d9%85%d9%8a%d8%b9-%d8%a7%d9%84%d8%a7%d9%82%d8%b3%d8%a7%d9%85-%d8%a7/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/58457a05776d42c2f553bd153e6b184b?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">EbNCaNa</media:title>
		</media:content>

		<media:content url="http://www.ebncana.com/upload/extension/zip.gif" medium="image">
			<media:title type="html">ت�ميل الكود داخل ملف</media:title>
		</media:content>
	</item>
		<item>
		<title>PHP : لغة البرمجة الاقوى في الماضي والحاضر</title>
		<link>http://ebncana.wordpress.com/2008/08/02/php-%d9%84%d8%ba%d8%a9-%d8%a7%d9%84%d8%a8%d8%b1%d9%85%d8%ac%d8%a9-%d8%a7%d9%84%d8%a7%d9%82%d9%88%d9%89-%d9%81%d9%8a-%d8%a7%d9%84%d9%85%d8%a7%d8%b6%d9%8a-%d9%88%d8%a7%d9%84%d8%ad%d8%a7%d8%b6%d8%b1/</link>
		<comments>http://ebncana.wordpress.com/2008/08/02/php-%d9%84%d8%ba%d8%a9-%d8%a7%d9%84%d8%a8%d8%b1%d9%85%d8%ac%d8%a9-%d8%a7%d9%84%d8%a7%d9%82%d9%88%d9%89-%d9%81%d9%8a-%d8%a7%d9%84%d9%85%d8%a7%d8%b6%d9%8a-%d9%88%d8%a7%d9%84%d8%ad%d8%a7%d8%b6%d8%b1/#comments</comments>
		<pubDate>Sat, 02 Aug 2008 18:02:02 +0000</pubDate>
		<dc:creator>EbNCaNa</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[EbNCaNa]]></category>
		<category><![CDATA[EbNCaNa.com]]></category>
		<category><![CDATA[فلسطين]]></category>
		<category><![CDATA[قانا الجليل]]></category>
		<category><![CDATA[كفركنا]]></category>
		<category><![CDATA[لغه]]></category>
		<category><![CDATA[لغة]]></category>
		<category><![CDATA[مادة]]></category>
		<category><![CDATA[ماضي]]></category>
		<category><![CDATA[مستقبل]]></category>
		<category><![CDATA[اللغة]]></category>
		<category><![CDATA[الاقوى]]></category>
		<category><![CDATA[الاكثر]]></category>
		<category><![CDATA[البرمجه]]></category>
		<category><![CDATA[البرمجيه]]></category>
		<category><![CDATA[البرمجية]]></category>
		<category><![CDATA[البرمجة]]></category>
		<category><![CDATA[انتشار]]></category>
		<category><![CDATA[ابن قانا]]></category>
		<category><![CDATA[بي اتش بي]]></category>
		<category><![CDATA[بداية]]></category>
		<category><![CDATA[تاريخ]]></category>
		<category><![CDATA[حاضر]]></category>
		<category><![CDATA[شرح]]></category>

		<guid isPermaLink="false">http://ebncana.wordpress.com/?p=130</guid>
		<description><![CDATA[السلام عليكم ورحمة الله وبركاته &#8230;
(( مشوار الالف ميل يبدأ بخطوة )) مقولة نفتها البي اتش بي و اثبتت ان مع الذكاء و التدبير بالامكان ان تختصر المسافات فقد قطعت البي اتش بي مشوار الصعود الى القمة في زمن قياسي لتقف في مصاف افضل لغات برمجة تطبيقات الويب ، و استطاعت برغم تربع بعض اللغات [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ebncana.wordpress.com&blog=3685320&post=130&subd=ebncana&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>السلام عليكم ورحمة الله وبركاته &#8230;</p>
<p>(( مشوار الالف ميل يبدأ بخطوة )) مقولة نفتها البي اتش بي و اثبتت ان مع الذكاء و التدبير بالامكان ان تختصر المسافات فقد قطعت البي اتش<a href="http://ebncana.files.wordpress.com/2008/08/800px-php-n_logo_php.png?w=300"></a> بي مشوار الصعود الى القمة في زمن قياسي لتقف في مصاف افضل لغات برمجة تطبيقات الويب ، و استطاعت برغم تربع بعض اللغات على القمة<a href="http://ebncana.files.wordpress.com/2008/08/800px-php-n_logo_php.png"><img class="alignleft size-thumbnail wp-image-133" src="http://ebncana.files.wordpress.com/2008/08/800px-php-n_logo_php.png?w=128&#038;h=67" alt="" width="128" height="67" /></a> ان تزحزحهم عن العرش و تجلس معهم في مقام واحد اذا لم يكن اعلى !!<br />
و قد يتصور البعض ان البي اتش بي ظهرت على هذه الهيئة و لكن الحقيقة انها مرت بمراحل كثيرة حتى ظهرت بالشكل الذي نراها الان .. و لكن قبل ان نبدأ بقصة البي اتش بي دعونا ننظر الى تعريف البي اتش بي تقنيا :</p>
<p>PHP4 is a cross-platform, HTML-embedded, server-side web scripting language.</p>
<p>cross-platform : هي قابلية تشغيل السكربتات التي تمت برمجتها لتعمل على نظام تشغيل معين على نظام اخر . كمثال أي سكربت من البي اتش بي 4 يعمل على نظام لينكس سيعمل على الارجح على نظام ويندوز .</p>
<div class="mceTemp"><span id="more-130"></span>HTML-embedded : بمعنى ان ملفات البي اتش بي خليط من اكواد الاتش تي ام ال و البي اتش بي .<br />
server-side : بمعنى انها تعمل من جهة السيرفر المزود و ليست من جهة المستخدم ، لذلك حتى و ان لم تكن قد نصبت مترجم البي اتش بي على جهازك سيكون بامكانك مشاهدة المواقع التي تستخدم البي اتش بي في صفحاتها بشكل طبيعي .</div>
<p><span style="color:#0000ff;">البداية PHP/FI : </span></p>
<p>في البداية ظهرت البي اتش بي لاول مرة باسم PHP/FI و قد اسسها راسموس ليردورف في العام 1995 على شكل مجموعة من سكربتات مكتوبة بلغة البيرل لكي يسيطر على احصائيات موقعه و يكسب بعض المعلومات عن رواد موقعه ، و ما لبث ان اطلق عليها اسم (Personal Hompage Tools ) أي &#8221; ادوات تصميم الصفحات الشخصية &#8221; .<br />
طبعا للتوسع في تغطية بعض العمليات الاضافية بدأ راسموس بصنع آلية بلغة السي بوسعها الاتصال بقواعد البيانات ، و تمكن المستخدمين أن يصنعوا لهم صفحات ديناميكية بسيطة . و اخيرا قرر راسموس ان يعرض هذا الكود المصدري المكتوب بلغة السي على الجمهور لك يستطيع أي شخص استخدامه او حتى تصليح بعض الاخطاء التي قد توجد حتى ان بعضهم عمل على توسيع الكود باضافة بعض الخصائص الجديدة . طبعا في هذه المرحلة لم تكن البي اتش بي تحتوي الا على القليل من الفنكشنز التي نعرفها الان و كان بها بعض الشبه من لغة البيرل و لكن طبعا بامكانيات اكثر تواضعا من ان تقارن بالبيرل .<br />
العام 1997 ، تنزل النسخة الثانية من الـ PHP/FI و التي كانت تحتوي على النسخة الجديدة الثانية من الكود المصدري المكتوب بلغة السي ، و كان هناك الالاف من المستخدمين يستخدمونها و حوالي 50000 موقع اعلن تنصيبه للبي اتش بي على سيرفراته ، أي حوالي 1% من مواقع الانترنت ككل و الجدير بالذكر الى هنا و المشروع نستطيع ان نقول عنه مشروع فردي لرجل واحد بالرغم من بعض الاضافات من بعض الاشخاص . ! و هذه النسخة لم تنزل رسميا الا في 1997 في شهر نوفمبر بعد ان امضت عمرها في اصدارات beta و قد اردفت بعد فترة قصيرة بالنسخ الفا من بي اتش بي 3 .</p>
<p><span style="color:#0000ff;">PHP3 :</span></p>
<p>هذه هي البداية الفعلية للبي اتش بي حيث بدات تشبه البي اتش بي الموجودة عندنا الان . و الذين صمماها هما اندي جوتمانز و زيف زوراسكي كإعادة كتابة كاملة بعد ان وجدا ان النسخة php/fi لا تفي بالغرض لكي ينشأ مشروع تجاري لجامعتهما و لكي يحافظا على القاعدة التي تقوم عليها PHP/FI اتحدا مع راسموس للبدأ بانشاء البي اتش بي 3 و تم بذلك ايقاف تطوير PHP/FI .<br />
و بدا العمل في النسخة الجديدة و انضم الكثير من المبرمجين الى فريق التطوير لاضافة الكثير من البروتوكولات و الـAPI و قواعد البيانات و كان هذا السر في زيادة الـ modules للبي اتش بي 3 . و لقد تم اعادة اصدار النسخة تحت اسم جديد لكي يمسح صفة المحدودية في الاسم القديم فكان الاسم الجديد “PHP: Hypertext Preprocessor” .<br />
و في العام 1998 كانت البي اتش بي قد اكتسبت قاعدة جماهيرية كبيرة و مئات من الالاف من المواقع كانت ترسل معلنة انها قامت بتنصيب البي اتش بي على سيرفراتها . أي بلغت نسبة المواقع التي تستخدم البي اتش بي 3 حوالي 10% من اجمالي مواقع الويب . و قد تم اصدار php3 رسميا في 1998 في شهر جون بعد ان امضت حوالي تسعة اشهر تحت الاستخدام التجريبي .</p>
<p><span style="color:#0000ff;">PHP4 :</span></p>
<p>في شتاء 1998 و بعد فترة وجيزة من اصدار الـ php3 الرسمي . بدأ زيف سوراسكي و اندي جوتمانز بإعادة كتابة و برمجة نواة البي اتش بي . و كان السبب هو ان البي اتش بي 3 بالرغم من انها كانت تدعم خصائص جديدة و مجموعة كبيرة من الثرد بارتي داتابيزز و المحركات الا انها لم تكن قادرة على السيطرة على التطبيقات بشكل جيد .<br />
لهذا الغرض بدأ تصميم محرك جديد سمي “ZEND Engine” ( و يتركب اسم المحرك الجديد من اول حرفين من اسم زيف و اخر حرفين من اسم اندي ) . و في منتصفات 1999 تم التعريف بهذا المحرك لاول مرة بعد ان حقق الاهداف المنشودة منه بنجاح قوي و في شهر مي من عام 2000 تم اصدار البي اتش بي 4 رسميا ، بعد ان تكونت من هذا المحرك و الكثير من الخصائص الاضافية الجديدة . و كان من ميزات هذه الاصدارة دعمها لكثير من سيرفرات الويب و الـ HTTP SESSIONS و المزيد من وسائل الامن لمعلومات المستخدم و المزيد من الاوامر و الفنكشنز للغة بذاتها .<br />
الان تعتبر البي اتش بي 4 اخر اصدار من البي اتش بي و قد بدأ الان العمل على تعديل و تطوير المحرك زيند لكي يتوافق مع الخصائص الجديدة للبي اتش بي 5 .<br />
هذه الايام البي اتش بي تستخدم من قبل مئات الالاف من المبرمجين و الملايين من المواقع ، اي نسبة 20% من اجمالي مواقع الويب .</p>
<p><span style="color:#0000ff;">PHP5 :</span></p>
<p>يعتمد مستقبل البي اتش بي 5 على محركها زيند و ستضم الاصدارة الثانية من هذا المحرك . و للمزيد من المعلومات راجع هذا الرابط :<br />
<a rel="nofollow" href="http://www.zend.com/zend/future.php" target="_blank"><span style="color:#1c547e;">http://www.zend.com/zend/future.php</span></a></p>
<p><span style="color:#0000ff;">البي اتش بي في النشر على الاوراق الصلبة :</span></p>
<p>اول كتاب تم اصداره عن لغة البي اتش بي كان باللغة التشيكية .<br />
ثم بعد شهر صدر كتاب آخر باللغة الالمانية في العام 1999 .<br />
اول كتاب انجليزي للبي اتش بي صدر باسم Core PHP Programming و كان يغطي البي اتش بي 3 . زادت الكتب حتى وصلت الى 50 كتاب باللغة الالمانية و 40 بالانجليزية و اكثر من 20 بالفرنسية . ثم نشرت كتب بلغات مختلفة كثيرة منها العبرية و الكورية و اليابانية .<br />
اما في عالم المجلات فأول مقال نشر عن البي اتش بي كان في مجلة تشيكية متخصصة في عالم الكمبيوترات و كانت عبارة عن تغطية للبي اتش بي 3 . ثم تتابعت المواضيع في مجلات كثيرة مثل :<br />
1- Dr. Dobbs<br />
2- Linux Magazine<br />
3- Linux Enterprise<br />
4- حتى ان هذه المقالات ظهرت في الـ MSDN ميكروسوفت !!</p>
<p> </p>
<p><a href="http://www.swalif.net/softs/swalif45/softs46949/" target="_blank">المصدر</a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ebncana.wordpress.com/130/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ebncana.wordpress.com/130/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ebncana.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ebncana.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ebncana.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ebncana.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ebncana.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ebncana.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ebncana.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ebncana.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ebncana.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ebncana.wordpress.com/130/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ebncana.wordpress.com&blog=3685320&post=130&subd=ebncana&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://ebncana.wordpress.com/2008/08/02/php-%d9%84%d8%ba%d8%a9-%d8%a7%d9%84%d8%a8%d8%b1%d9%85%d8%ac%d8%a9-%d8%a7%d9%84%d8%a7%d9%82%d9%88%d9%89-%d9%81%d9%8a-%d8%a7%d9%84%d9%85%d8%a7%d8%b6%d9%8a-%d9%88%d8%a7%d9%84%d8%ad%d8%a7%d8%b6%d8%b1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/58457a05776d42c2f553bd153e6b184b?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">EbNCaNa</media:title>
		</media:content>

		<media:content url="http://ebncana.files.wordpress.com/2008/08/800px-php-n_logo_php.png?w=128" medium="image" />
	</item>
	</channel>
</rss>