أعجبني الموضوع، شكراً لك أشرف
تفضل مشاركتي على السريع
كود PHP:
function array_chunk_alt ( $input , $size , $preserve_keys = false ) { $j = 0 ; $new_input = array(); $count = sizeof ( $input ); for ( $i = 0 ; $i < $count ; $i ++) { if ( $preserve_keys === true ) $new_input [ "$j" ][ "$i" ] = $input [ "$i" ]; else $new_input [ "$j" ][] = $input [ "$i" ]; if (( $i + 1 ) % $size == 0 ) $j ++; } return $new_input ; }
24-05-2009, 11:10 PM
كود PHP:
function _array_chunk ( $input , $size , $preserve_keys = false ){ $i = $v = $x = - 1 ; $output = array(); while(list(, $val ) = each ( $input )){ ++ $i ; if(++ $x % $size == 0 ) ++ $v ; $output [ $v ][! $preserve_keys && $i == $size ? $i = 0 : $i ] = $val ; } return $output ; }
__________________ محمد حمود.
25-05-2009, 12:56 AM
تحديث ..
كود PHP:
function _array_chunk ( $input , $size , $preserve_keys = false ){ $i = $v = - 1 ; $output = array(); while(list(, $val ) = each ( $input )) $output [++ $i % $size == 0 ? ++ $v : $v ][! $preserve_keys && $i == $size ? $i = 0 : $i ] = $val ; return $output ; }
__________________ محمد حمود.
25-05-2009, 04:08 AM
ممتاز، حتى ما ننسى الموضوع خلنا ناخذ دالة بسيطة مثل strlen
تحياتي، أشرف السمهوري
25-05-2009, 05:25 PM
شيء مسلي فعلا
كود PHP:
function _strlen ( $string ){ if( $string == '' ) return 0 ; for( $i = 0 ;isset( $string [ $i ]);++ $i ); return $i ; }
* اعتقد هناك طريقتين ابسط وافضل من هذه
__________________ محمد حمود.
25-05-2009, 09:06 PM
إقتباس:
المشاركة الأصلية بواسطة
mr_m شيء مسلي فعلا كود PHP:
function _strlen ( $string ){
if( $string == '' ) return 0 ;
for( $i = 0 ;isset( $string [ $i ]);++ $i );
return $i ;
}
* اعتقد هناك طريقتين ابسط وافضل من هذه
محاولة على السريع شبيهة بدالتك
ولكنني لا احب for
كود PHP:
function _strlen ( $str ){
$i = 0 ;
$num = 0 ;
while( $str [ $i ] != '' ){
$num ++;
$i ++;
}
return $num ;
}
25-05-2009, 11:42 PM
جميل جدا ..
طيب ما رأيك ندمج مميزات الدالتين
كود PHP:
function _strlen ( $string ){ $i = 0 ; while(isset( $string [ $i ])) ++ $i ; return $i ; }
__________________ محمد حمود.
26-05-2009, 12:06 AM
في طريقة أفضل
كود PHP:
function strlen_alt ( $string ) { return $string == '' ? 0 : strrpos ( $string , substr ( $string , - 1 )) + 1 ; }
أو
كود PHP:
function strlen_alt ( $string ) { for ( $i = 0 ; $string [ $i ]; $i ++); return $i ; }
26-05-2009, 02:11 AM
طالما اننا استخدمنا دوال من اللغة فماذا عن أخت strlen
كود PHP:
function _strlen ( $string ){ return mb_strlen ( $string ); }
__________________ محمد حمود.
26-05-2009, 03:15 AM
كلها طرق ممتازة، mb_strlen بالطبع لا يجوز استخدامها فوظيفتها مختلفة وإن كانت مشابهة فلا يجوز أن نستخدمها في المحاكاة، وإلا لاستخدمنا join في محاكاة implode .. يعني نلف وندور ونرجع مكان ما كنا
..
الآن سننتقل إلى دالة
str_word_count .. بالله نشوف مين يحاكيها
PHP: str_word_count - Manual
26-05-2009, 07:54 AM
هاذي بدها شغل كثير
هات لك واحدة ثانية
على كل عملت وحدة بسيطة للفراغات بس
كود PHP:
function _str_word_count ( $str ){ $str = explode ( " " , $str ); return $str ; }
آخر تعديل بواسطة exchangeboss في 26-05-2009 الساعة 03:46 PM .
26-05-2009, 03:45 PM
له يا كبير، بدنا نحلها
كود PHP:
function _str_word_count ( $string , $format = 0 , $charlist = null ) { $array = array(); $str = '' ; $count = - 1 ; if( $charlist != null ) { $pattern = '/([a-zA-Z\'\"]' . '|[' . $charlist . '])/' ; } else { $pattern = '/([a-zA-Z\'\"])/' ; } for( $i = 0 ; $i < strlen ( $string ); $i ++) { if( preg_match ( $pattern , $string [ $i ])) { if( $count ==- 1 ) { $count = $i ; } $str .= $string [ $i ]; } else { if(!empty( $str )) { ( $format != 2 ) ? $array [] = $str : $array [ $count ] = $str ; } $str = '' ; $count = - 1 ; } } return ( $format == 0 ) ? count ( $array ) : $array ; }
__________________
لا إله الا الله محمد رسول الله فضائية الأقصى :: عينك على الوطن نيلسات: 10872 عمودي 27500
عربسات: 12054 عمودي 27500
إعلامنا.. إسلامي.. هادف.. مقاوم.. لتعلو الراية..
آخر تعديل بواسطة MPHP في 26-05-2009 الساعة 04:06 PM .
السبب: ترتيب الكود
26-05-2009, 03:50 PM
إقتباس:
المشاركة الأصلية بواسطة
MPHP له يا كبير، بدنا نحلها كود PHP:
function _str_word_count ( $string , $format = 0 , $charlist = null ) {
$array = array();
$str = '' ;
$count = - 1 ;
if( $charlist != null ) {
$pattern = '/([a-zA-Z\'\"]' . '|[' . $charlist . '])/' ;
} else {
$pattern = '/([a-zA-Z\'\"])/' ;
}
for( $i = 0 ; $i < strlen ( $string ); $i ++) {
if( preg_match ( $pattern , $string [ $i ])) {
if( $count ==- 1 ) {
$count = $i ;
}
$str .= $string [ $i ];
} else {
if(!empty( $str )) {
( $format != 2 ) ? $array [] = $str : $array [ $count ] = $str ;
}
$str = '' ;
$count = - 1 ;
}
}
return ( $format == 0 ) ? count ( $array ) : $array ;
}
اهلا اخي مشكلتني انني لا افهم جرف بالregular expersion ساقرا عنها ان شاء الله في وقت الفراغ
26-05-2009, 04:32 PM
فكرة جميلة أخي exchangeboss
اكيد ممكن نعمل لها simulation، ما في مستحيل
بس! كيف بدي أوصل query إلى MySQL database engine!
__________________
لا إله الا الله محمد رسول الله فضائية الأقصى :: عينك على الوطن نيلسات: 10872 عمودي 27500
عربسات: 12054 عمودي 27500
إعلامنا.. إسلامي.. هادف.. مقاوم.. لتعلو الراية..
26-05-2009, 05:16 PM
تمكنت الوصول إلى source code الخاص بمكتبة mysql
أشارككم إياه...
Source Code, Sample Code or Example Code: libmysql.c
__________________
لا إله الا الله محمد رسول الله فضائية الأقصى :: عينك على الوطن نيلسات: 10872 عمودي 27500
عربسات: 12054 عمودي 27500
إعلامنا.. إسلامي.. هادف.. مقاوم.. لتعلو الراية..
26-05-2009, 05:24 PM
شيء جميل أن نقرأ الكود
لكن محاكاته! لكم القرار.
__________________
لا إله الا الله محمد رسول الله فضائية الأقصى :: عينك على الوطن نيلسات: 10872 عمودي 27500
عربسات: 12054 عمودي 27500
إعلامنا.. إسلامي.. هادف.. مقاوم.. لتعلو الراية..
26-05-2009, 05:25 PM
إقتباس:
المشاركة الأصلية بواسطة
MPHP فكرة جميلة أخي exchangeboss
اكيد ممكن نعمل لها simulation، ما في مستحيل
بس! كيف بدي أوصل query إلى MySQL database engine!
بإمكانك ذلك باستخدام الـ Shell Script:
كود:
mysql -u username -p password -e 'SQL Query' databasename
26-05-2009, 05:37 PM
هل من الممكن إجراء ذلك بالسوكتس كذلك؟
26-05-2009, 06:15 PM
يعني الطريقة الوحيدة لمحاكاة دالة mysql_query هي بإرسال query من خلال shell!
ولكن ماذا عن أنظمة التشغيل الأخرى!
__________________
لا إله الا الله محمد رسول الله فضائية الأقصى :: عينك على الوطن نيلسات: 10872 عمودي 27500
عربسات: 12054 عمودي 27500
إعلامنا.. إسلامي.. هادف.. مقاوم.. لتعلو الراية..
26-05-2009, 06:28 PM
دعونا من الدوال العميقة التي تتطلب إحداث موضوع كامل لأجله
ولنعيد مرة أخرى بدالة جديدة، str_replace
مع الأخذ بالإعتبار عدم استخدام دوال الإستبدال بكافة أنواعها، كذلك قابلية المعاملين الأول والثاني لقيم من نوع مصفوفة
هل من متحدّ؟ من يقول أنا لها؟
26-05-2009, 06:47 PM
طيب هذي محاولتي بخصوص str_word_count
كود PHP:
function _str_word_count ( $string , $format = 0 , $charlist = '' ){ $string = trim ( $string , $charlist ); $charlist = str_replace ( '..' , '-' , $charlist ); if( $format != 2 ){ preg_match_all ( "/[a-z$charlist][a-z\'$charlist\-]*/i" , $string , $arr ); return $format == 0 ? count ( $arr [ 0 ]) : $arr [ 0 ]; }else{ preg_match_all ( "/[a-z$charlist][a-z\'$charlist\-]*/i" , $string , $arr , PREG_OFFSET_CAPTURE ); $output = array(); foreach( $arr [ 0 ] as $value ) $output [ $value [ 1 ]] = $value [ 0 ]; return $output ; } } $string = 'jhg\'jg3h jh"gj jgjgjg -' ; var_dump ( _str_word_count ( $string , 2 , '1..4' ));
بخصوص mysql_query فهي تأخذ link_identifier ، ما قولكم؟
__________________ محمد حمود.
26-05-2009, 06:53 PM
@مدمن نت باذن الله نعملها
__________________ محمد حمود.
26-05-2009, 06:57 PM
@مدمن نت لا تتحدَّ بشيء قديم
كود PHP:
<?php /** * str_replace_n() - A function to replace strings * * by Pal Coder and Ashraf Samhouri * * @param $search (string, array) * @param $replace (string, array) * @param $subject (string, array) * @param $count int * @return $subject, the new string or new array after it replaced */ function str_replace_n ( $search , $replace , $subject , & $count = 0 ) { if ( $search === null || $subject === null ) { return false ; } $count = 0 ; if ( is_array ( $search )) { $search = array_values ( $search ); if ( is_array ( $replace )) { $replace = array_values ( $replace ); } if ( is_array ( $subject )) { $subject = array_values ( $subject ); for ( $n = 0 , $x = count ( $subject ); $n < $x ; $n ++) { for ( $i = 0 , $c = count ( $search ); $i < $c ; $i ++) { $value = $search [ $i ]; $pos = false ; do { if ( $pos !== false ) { $before = substr ( $subject [ $n ], 0 , $pos ); $after = substr ( $subject [ $n ], $pos + strlen ( $value ), strlen ( $subject [ $n ])); $subject [ $n ] = $before .( is_array ( $replace ) ? (isset( $replace [ $i ]) ? $replace [ $i ] : '' ) : $replace ). $after ; $count ++; } $pos = strpos ( $subject [ $n ], $value ); } while ( $pos !== false ); } } } else { for ( $i = 0 , $c = count ( $search ); $i < $c ; $i ++) { $value = $search [ $i ]; $pos = false ; do { if ( $pos !== false ) { $before = substr ( $subject , 0 , $pos ); $after = substr ( $subject , $pos + strlen ( $value ), strlen ( $subject )); $subject = $before .( is_array ( $replace ) ? (isset( $replace [ $i ]) ? $replace [ $i ] : '' ) : $replace ). $after ; $count ++; } $pos = strpos ( $subject , $value ); } while ( $pos !== false ); } } } else { if ( is_array ( $subject )) { $subject = array_values ( $subject ); for ( $n = 0 , $x = count ( $subject ); $n < $x ; $n ++) { $pos = false ; do { if ( $pos !== false ) { $before = substr ( $subject [ $n ], 0 , $pos ); $after = substr ( $subject [ $n ], $pos + strlen ( $search ), strlen ( $subject [ $n ])); $subject [ $n ] = $before . $replace . $after ; $count ++; } $pos = strpos ( $subject [ $n ], $search ); } while ( $pos !== false ); } } else { $pos = false ; do { if ( $pos !== false ) { $before = substr ( $subject , 0 , $pos ); $after = substr ( $subject , $pos + strlen ( $search ), strlen ( $subject )); $subject = $before . $replace . $after ; $count ++; } $pos = strpos ( $subject , $search ); } while ( $pos !== false ); } } return $subject ; } ?>
الحل كتبه أستاذ Pal Coder ( محمد عيسى ) من فترة طويلة هنا في سوالف وساعدته فيه قليلاً ..
وتقدر تقول هي نفس دالة str_replace كاملة
تحياتي، أشرف السمهوري
26-05-2009, 07:15 PM
بخصوص mysql _query
كنت جاي لاقولكم نستخدم دالة system
صعب جدا ان تعمل اصلا
كود PHP:
function _mysql_query ( $query ){ system ( "mysql" ); system ( $query ); }
على نظام لينكس طبعا ولكن لا علينا منها لناخذ دالة اخرى count وهذا جل لها
كود PHP:
function _count ( $array ){ $i = 0 ; foreach( $array as $array ){ $i += 1 ; } return $i ; }
str replace
كود PHP:
function _str_replace ( $search , $replace , $string ){ return preg_replace ( $search , $replace , $string ); }
مزحة صغيرة
آخر تعديل بواسطة exchangeboss في 26-05-2009 الساعة 07:36 PM .
26-05-2009, 07:30 PM