لديك حساب بالفعل؟ دخول
دخول  سجل الأن 
إظهار خمس كلمات دلالية فقط
السلام عليكم

أنا استعمل دالة تقوم بتحويل العنوان الى كلمات دلالية

كيف أستطيع إظهار فقط 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 ;
}
تاريخ البداية: 1 / فبراير / 2012 الساعة 1:12 اخر نشاط: 1 / فبراير / 2012 الساعة 10:11 php replace سحابة

قد يفيدك هذا "انشاء سحابة الكلمات المفتاتحية عن طريق مصفوفة"
1 / فبراير / 2012 الساعة 9:54

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
منذ: 1 / فبراير / 2012 الساعة 10:11

شوف هذه الدالة جيدة لعمل الكلمات الدلائلية
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
منذ: 1 / فبراير / 2012 الساعة 9:51

أنشر اجابتك

xهل تريد الاجابة عن هذا السؤال؟ من فضلك سجل دخول او اشترك لتتمكن من الاجابة