إظهار خمس كلمات دلالية فقط
السلام عليكم
أنا استعمل دالة تقوم بتحويل العنوان الى كلمات دلالية كيف أستطيع إظهار فقط 5 كلمات و حذف الباقي function clean_entry($link) { $link = preg_replace('*([\s$+,/:=\?@"\'<>%{}|\\^~[\]`\r\n\t\x00-\x1f\x7f]|(?(?<!&)#|#(?![0-9]+;))|&(?!#[0-9]+;)|(?<!&#\d|&#\d{2}|&#\d{3}|&#\d{4}|&#\d{5});)*s' , '-' , strip_tags($link)) ; $link = trim(preg_replace('#-+#', ', ', $link), ', '); return $link ; }
2 إجابات
السلام عليكم
لا حاجة لاستعمال التعابر القاسية (Requral Expression) ويمكن عملها باستعمال دالة explode المعدلة التى يمكنها تحويل النص الى مفصوفة على طريق تحديد فاصلة وايضا اختيار عدد الكلمات وهذا الذى انت تريده function exploding($separator,$string,$limit=NULL){ $returnarray = array(); $increment = 0; $length = strlen($string); $limit_negative=($limit < 0); for($i = 0; $i < $length;$i++){ $current = substr($string,$i,1); if($separator == $current){ $increment++; } elseif($separator == ""){ @$returnarray[$increment].=$current; $increment++; } else{ @$returnarray[$increment].=$current; } if(isset($limit) && $limit == $increment){ break; } } if($limit_negative){ for($i = 0; $i > $limit;$i--){ array_pop($returnarray); } } return $returnarray; }فهذه الدالة تقوم بنفس وظيفة الدالة الموجودة فعلا بالبى اتش بى وهى explode ولكن هذه الدالة تختلف عنها فى المتغير الثالث وهو Limit فى الدالة explode عنما تستعمل limit تقسم لك الجملة كالتالى $str = 'one|two|three|four'; print_r(explode('|', $str, 2));تخرج Array ( [0] => one [1] => two|three|four )اما الدالة بالاعلى تخرج Array ( [0] => one [1] => two )لذلك يمكن استعمالها كما ترد انت كالتالى مع دالة array_count_values التى اذا كانت المفصفوفة تحتوى على اكثر من قيمة متشابهة تعطيك عدد مرات التتشابه حتى نحدد بها حجم الكلمة فى سحابة الكلمات الليلية $title = "piece1 piece2 piece3 piece4 piece5 piece6"; $words = exploding(" ", $title,4); foreach( array_count_values($words) as $word => $count){ echo "<a class='tag_{$count}'>{$word}</a> "; }وعليك فى كود الـcss عمل كلاس سمى tag_1 و tag_2 وهاكذا بواسطة: MacOS 3 من 3 أشخاص وجدو هذه الاجابة مفيدة. هل وجدتها؟ نعم لا
شوف هذه الدالة جيدة لعمل الكلمات الدلائلية
function tages($text,$glue,$strlen = 4) { $do = explode(" ",$text); $array_to = array(); while (list($key, $value) = each($do)) { if(strlen($value) >= $strlen){ array_push($array_to,"<a href='?q=".urlencode($value)."'>{$value}</a>"); } } $show = implode("$glue ",$array_to); return $show; }مثال echo tages('إظهار خمس كلمات دلالية فقط',','); بواسطة: molhm 2 من 2 أشخاص وجدو هذه الاجابة مفيدة. هل وجدتها؟ نعم لا |
قد يفيدك هذا "انشاء سحابة الكلمات المفتاتحية عن طريق مصفوفة"
1 / فبراير / 2012 الساعة 9:54