دعونا من الدوال العميقة التي تتطلب إحداث موضوع كامل لأجله
ولنعيد مرة أخرى بدالة جديدة، str_replace
مع الأخذ بالإعتبار عدم استخدام دوال الإستبدال بكافة أنواعها، كذلك قابلية المعاملين الأول والثاني لقيم من نوع مصفوفة
هل من متحدّ؟ من يقول أنا لها؟
دعونا من الدوال العميقة التي تتطلب إحداث موضوع كامل لأجله
ولنعيد مرة أخرى بدالة جديدة، str_replace
مع الأخذ بالإعتبار عدم استخدام دوال الإستبدال بكافة أنواعها، كذلك قابلية المعاملين الأول والثاني لقيم من نوع مصفوفة
هل من متحدّ؟ من يقول أنا لها؟
__________________
تابعني على Twitter
طيب هذي محاولتي بخصوص str_word_count
بخصوص mysql_query فهي تأخذ link_identifier ، ما قولكم؟كود 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'));
__________________
محمد حمود.
@مدمن نت باذن الله نعملها
__________________
محمد حمود.
@مدمن نت لا تتحدَّ بشيء قديم :court:
الحل كتبه أستاذ Pal Coder ( محمد عيسى ) من فترة طويلة هنا في سوالف وساعدته فيه قليلاً ..كود 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;
}
?>
وتقدر تقول هي نفس دالة str_replace كاملة
تحياتي، أشرف السمهوري
بخصوص mysql _query
كنت جاي لاقولكم نستخدم دالة system
صعب جدا ان تعمل اصلا
على نظام لينكس طبعا ولكن لا علينا منها لناخذ دالة اخرى count وهذا جل لهاكود PHP:
function _mysql_query($query){
system("mysql");
system($query);
}
str replaceكود PHP:
function _count($array){
$i=0;
foreach($array as $array){
$i+=1;
}
return $i;
}
مزحة صغيرةكود PHP:
function _str_replace($search,$replace,$string){
return preg_replace($search,$replace,$string);
}
التعديل الأخير تم بواسطة exchangeboss ; 26-05-2009 الساعة 08:36 PM
إبداع برمجي حقيقة يا أشرف، أنا فقط تحديت بمثلها لكن من إنشائكم وفشلتم
أشرف، إذا كنت تقول أنها نفس دالة str_replace كاملة
إذاً سؤال: مافائدة المعامل الرابع؟
__________________
تابعني على Twitter
ما شاء الله
الشباب شغالين بالموضوع بكل ضمير
__________________
لا إله الا الله محمد رسول الله
فضائية الأقصى :: عينك على الوطن
نيلسات: 10872 عمودي 27500
عربسات: 12054 عمودي 27500
إعلامنا.. إسلامي.. هادف.. مقاوم.. لتعلو الراية..
just follow us
----------------
دالة جديدة وسهلة جداً : is_int
على فكرة هي function وليست language structure
يعني الدعوة بسيطة ، شغلوا مخكم وستعرفون الحل! >>يخاف يتحدى
__________________
تابعني على Twitter
هههه .. المعامل الرابع count :
لحساب عدد الاستبدالات .. وهو ريفرنس طبعاً ..Note: If passed, this will hold the number of matched and replaced needles.
تحياتي، أشرف السمهوري
أيوووة كذا اوعى تتحدى ههه ..
هذا حلي:
أما إذا تبي حل ثاني قل لي :# ..كود PHP:
function is_int_sim($var) {
if (intval($var) === $var) return true;
return false;
}
تحياتي، أشرف السمهوري
طب اعمل الدالة intval يا معلم :nice::nice:
هذا حلي للعربي والانجليزي فقط
كود PHP:
function _is_int($string){
if(preg_match("@[a-z]@e",$string) || preg_match("@[A-Z]@e",$string) || preg_match("@[أ-ي]@e",$string)){
return false;
}
else{
return true;
}
}
التعديل الأخير تم بواسطة exchangeboss ; 26-05-2009 الساعة 09:25 PM
انت حلك مش لـ is_int حلك لـ is_numeric بس مش مشكلة إنما الأعمال بالنيات :nice:
is_int وظيفتها تتأكد من النوع مش بس المحتوى .. واذا بدك intval تفضل :deal::deal: :
تحياتي، أشرف السمهوريكود PHP:
function intval_sim($var) {
return (int)$var;
}
سامحنا ناسي نص اللغة :court::court:
غريبة انك ما علّقت على محاكاتي لـ intval كنت مستني ردك عشان أعطيك هذا:
تحياتي، أشرف السمهوريكود PHP:
function intval_sim($var) {
return $var * 1;
}
أفا، أجل للأسف كانت لدي معلومة مغلوطة، كنت أظن أنه لتحديد عدد مرات الإستبدال
وكنت قبل ذلك استغربت أنه تم تصفيره في أول الدالة واستغربت أكثر من فائدة كونه reference
شكراً لتصحيحك المعلومة
__________________
تابعني على Twitter