تمت التجربة بنجاح يا أخي العملاق شكرا لك ..
أخي جريح أتمنى تجرب تاني .. فاضل لك أشياء بسيطة .. ونسعد بمشاركتك
تمت التجربة بنجاح يا أخي العملاق شكرا لك ..
أخي جريح أتمنى تجرب تاني .. فاضل لك أشياء بسيطة .. ونسعد بمشاركتك
__________________
....
محمد حسام
انترنت بلس
أخي الكريم انترنت بلس
أتوقع لو تعدل سؤال المسابقة ليكون النص يحوي وسوم HTML ويجب على الدالة أنها ماتقطع الوسوم وأيضا ماتقطع الكلام
كان بيكون عملي أكثر وأصعب شوي ower:
مع خالص تحياتي
أخوي إنترنت بلس .. شوف تجربتي وعطني رايك ..
مع العلم أني لم أطبق تجارب الأخوان لكن شفت ملاحظاتك على تجاربهم ..كود PHP:
<?php
###################################################
// برمجة عبدالعزيز السعيد //
// Email : bar3_sa(at)hotmail.com //
// Powered By (Pri بارع ncE) Copyright © 2005 //
###################################################
function bar3($n, $text, $end){
// للتأكد أن العدد المطلوب لا يقف على نهاية كلمة أو العدد أطول من النص //
if ($text[$n] != " " and $text[$n] != ""){
// للحساب عدد حروف النص المدخل //
$crop = strlen($text);
// عملية تكرار تقلص النص حتى تصل إلى أقرب كلمة وتقف عليها //
for ($i=0 ; $i<=$crop;$i++) {
$a = $n-$i;
if ($text[$a] == " "){$i=$crop;}
if ($a == 0){$i=$crop;}
}
// يدخل في هذه العملية إذا كان لا يوجد كلمة يقف عليها في الخلف //
if ($a == 0){
// عملية تكرار للبحث عن أقرب كلمة في الأمام //
for ($i=0 ; $i<=$crop;$i++) {
$a = $n+$i;
if ($text[$a] == " "){$i=$crop; }
if ($a == $crop){$i=$crop;}
}
// إذا كان لا يوجد كلمة يقف عليها //
if ($a == $crop){$a=$n;}
}
// نتيجة النص //
$msg = substr($text, 0, $a);
}
// يدخل هنا إذا كان العدد المطلوب أكبر من النص أو أن العدد المطلوب يقف على نهاية كلمة //
else {
$a = $n;
// نتيجة النص //
$msg = substr($text, 0, $a);
}
// نتيجة النص النهائية //
return $msg." ".$end;
}
/* إستدعاء function
الخانة 1 عدد الأحرف
الخانة 2 النص المدخل
الخانة 3 نهاية النص
*/
echo bar3(10, 'إسماعيل بن إبراهيم عليهما السلام', '..');
?>
و للــــــــــــــتـــــــــــــــــجـــــــــــــــ ـربـــــــــــــــــــة .. إضغط هنا ..
:nice: :nice: محبكم عبدالعزيز ..
__________________
ألا في سبيل الله ما أنا فاعل - - - عطاء وإقدام وحزم ونائل
الشريف.نت
كلامك صح انها بتكون عملية .. وإذا أراد الإخوة تعديل أكوادهم بإضافة كلمة واحدة إليها لحذف الوسوم ياريت علشان الناس تتمكن من استخدام الكود
ncE بارع Pri
ممتاز جربتها وطبعا مافيش مشاكل بما أنك قرأت الملاحظات بارك الله فيك ..
سوف أضيفها إلى صفحة تجربة المشاركات وأرسل العنوان هنا .. بس سأضطر لحذف المشاركات التي تسببت في مشكلة تهنيج الصفحة عند طلبها ..
__________________
....
محمد حسام
انترنت بلس
أعتقد مافيش مشاركات جديدة قادمة أو تعديلات .. بناء على ذلك هاهي صفحة نتائج استخدام الأكواد:
www.internetplus.biz/test.php
وفي الطريق مسابقة جديدة .. بس أصعب شوية .. ومهمة طبعا
__________________
....
محمد حسام
انترنت بلس
تم التعديل على الكود..
كود PHP:
<?php
/*
مثال لإستخدام الكائن
*/
$word =& new wordCut('منتديات سوالف سوفت', 10);
// التحقق من عدم الفشل
if($word->failed !== true)
{
// طباعة الناتج
echo $word->result();
}
else
{
echo "لم يتم فصل الكلام!\n";
}
/*
كائن لقص الجملة بحسبب عدد معين من الحروف.
برمجة: MOBARMEG <mobarmeg[at]mobarmeg[dot]com>
البارامترات:
+$words : الجملة
+$size : مكان قطع الجملة
@$seperator : الفاصل بعد قطع الجملة
*/
class wordCut
{
// متغيرات داخلية
var $_words;
var $_size;
var $_seperator;
var $_i;
var $_result;
// متغير عام
var $failed;
// الدالة الرئيسية - Constructure
function wordCut($words, $size, $seperator=' ...')
{
// تسجيل قيم المتغيرات المحلية بالمتغيرات المعطاة
$this->_words = $words;
$this->_size = (int) $size;
$this->_seperator = $seperator;
// ضبط قيمة المتغير العام failed إلى false
$this->failed = false;
// التحقق من أن الحجم أكبر من الصفر
if($this->_size <= 0)
{
// الحجم أصغر من أو يساوي 0 .. ارجاع false والخروج
return false;
exit;
}
// التحقق من أن الحجم أكبر من النص المعطى ..
if($this->_size >= strlen($this->_words))
{
// تسجيل قيمة المتغير المعلي _result بنفس الجملة المعطاة
$this->_result = $this->_words;
// ارجاع true
return true;
// الخروج (للتأكد فقط!)
exit;
}
// استدعاء الدالة المحلية _parse() للمعالجة
$this->_parse();
return true;
}
function _parse()
{
// تصفير قيمة المتغير المحلي _i
$this->_i = 0;
// الدخول في حلقة مادامت قيمة المتغير المحلي _i لا تساوي 1
// وقيمة المتغير المحلي _size أكبر من أو تساوي 0
while($this->_i != 1 && $this->_size >= 0)
{
// التحقق أن الحرف الحالي للحجم المحدد هو فراغ
if($this->_words{$this->_size} != ' ')
{
// إذا لم يكن فراغ انقاص رقم للحجم المزاح
$this->_size--;
}
else
{
// تم التأكد من العملية .. جعل قيمة _i تساوي 1 للخروج من الحلقة
$this->_i = 1;
}
}
// اذا كانت قيمة _size تساوي -1 فسوف يتم تخزين قيمة true في المتغير العام failed
if($this->_size == -1)
$this->failed = true;
// تخزين القيمة في المتغير المحلي _result
$this->_result = substr($this->_words, 0, $this->_size).$this->_seperator;
return true;
}
function result()
{
// ارجاع قيمة المتغير المحلي _result
return $this->_result;
}
}
?>
__________________
ArabBB ... SoooooN!
يبدو أ،ك وصلت متأخرا أخي المبرمج....
لأن صفحة النتائج ظهرت .........
تحياتي
يا ماستر مش مشكلة أنا سعيد أن المبرمج أتى بالكود الصحيح .. شكرا لك يا مبرمج .. جاري تعديل صفحة النتائج
__________________
....
محمد حسام
انترنت بلس
ماشاء الله لاقوة إلا بالله منظر صفحة النتائج يفرح
هل لاحظتم ما حصل يا شباب؟ دالة واحدة لها الآن ستة طرق مختلفة كلها من برمجتنا نحن وكمان شرح ممتاز من كل المبرمجين .. ماشاء الله ..
__________________
....
محمد حسام
انترنت بلس
الحمد لله
يدل على تنوع الأفكار ...
في انتظار المسابقة التالية....
الصراااحة قمت الابداع .. والتفكييير :eek2:
و من خلال تجربتي وتجربة بعض الأخوان خرجت بالآتي ..
** PHP-Master02 .. برمجة سهله سريعة تدل على سرعة البديهه .. لكن لا تعمل إذا كان العدد 1 أو 2 ..
الإحتمالات اللتي لديك فقط واحد :
1. يبحث عن أقرب كلمة يقف عليها في الخلف .. تعليقي ( طيب لو ماحصل فما الناتج ) جرب بنفسك ..
** Dr.no .. عمل طيب .. لكن كما قيل لم تصل الى مربط الفرس .. ..
** ncE بارع Pri .. أترك التعلييق لكم ..
الإحتمالات اللتي لديك 3 :
1. يبحث عن أقرب كلمة في الخلف .. ثم يقف
2. إذا لم يجد في الخلف يبحث عن أقرب كلمة إلى الأمام .. ( قد تكون سلبية )
3. إذا لم يجد في في الخلف وكذا في الامام فإنه يقف حيث طلبت ..
** العملاق .. فكرة رائدة وخصووصاً فكرة النسبة .. :nice:
الإحتمالات اللتي لديك 2 :
1. يبحث عن أقرب كلمة في الخلف .. ثم يقف
2. إذا لم يجد في في الخلف فإنه يقف حيث طلبت ..
** إنترنت بلس .. برمجة تميزت بالسهولة والسرعة .. لكن لا تعمل إذا كان العدد المطلوب 1 ..
الإحتمالات اللتي لديك فقط واحد :
1. يبحث عن أقرب كلمة يقف عليها في الخلف .. تعليقي ( طيب لو ماحصل فما الناتج ) جرب بنفسك ..
** Al Mobarmeg المبرمج .. تميزة ببراعة الفكرة وقوة الفكرة ( وش خليت لنا ) لكن البرمجة طوييلة جدا ..
الإحتمالات اللتي لديك فقط واحد :
1. يبحث عن أقرب كلمة يقف عليها في الخلف .. تعليقي ( طيب لو ماحصّل فما الناتج ) جرب بنفسك ..
واتمنى نرى المزيييد من التحدياااات من أخينا المبدع إنترنت بلس .. بإنتظارك .. :nice:
__________________
ألا في سبيل الله ما أنا فاعل - - - عطاء وإقدام وحزم ونائل
مين قال كده بس؟ انا ما عدلتش حاجة والله وحطيت عدد الحروف المطلوبة 1 واشتغلت .. بس طبعا مش ح ترجع لك حروف إلا إذا كان فيه حرف منفصل لوحده ..
http://www.internetplus.biz/test.php...0هنا&what=1
بس انا مش فاهم يعني ايه يبحث عن أقرب كلمة يقف عليها في الخلف؟؟
أوووه انا انتبهت الآن .. بارع انت عندك مشكلة لو طلبت منها حرف واحد الدالة الخاصة بك بتقص الكلمة .. وده ممنوووووووووووووووووووووع فهمت انت بتتكلم عن ايه .. بس ضروري تعدل دالتك بحيث لا تقطع الكلام في وسط كلمة ..
__________________
....
محمد حسام
انترنت بلس
بسيطة :con2:
والنتيجهكود PHP:
//النص
$str = "منتديات سوالف سوفت";
//العدد المطلوب إرجاعه
$count='5';
//إدخالها للفنكشن
space($str,$count);
function space($string) {
global $str, $count;
$compare=$str[$count];
if ($compare==" ") {
echo substr($str,0,$count);
} else {
space($str,$count++);
}
}
الشرح :كود:منتديات
عندما تقوم بوضع عدد معين من الحروف يقوم السكربت بطلب آخر حرف من عدد الحروف مثلاً
طلبت 13 حرف فهو يقوم بجلب الحرف رقم 13 من النص إذا كان الحرف ليست مسافة يقوم بزيادة عدد الأحرف 1 يعني يصير المجموع 14 حتى يصل إلى مسافه ويظهر النتيجه
شكرا لك
بس ياريت تجربها وتراجعها عشان أضيفها لصفحة التجربة ..
__________________
....
محمد حسام
انترنت بلس
مجربها