לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 13-11-2007, 00:54
צלמית המשתמש של netaneldj
  netaneldj netaneldj אינו מחובר  
 
חבר מתאריך: 01.05.06
הודעות: 7,861
Facebook profile
"מנוע חיפוש" שתומך ב utf-8 + percentage + marking

המון אנשים שאלו וביקשו על איך לעשות מנוע חיפוש שתומך בקידודים שונים.
אז ישבתי כמו חמור חצי יום על פונקציה של "מנוע חיפוש".
אז השעה כבר מאוחרת ולא הספקתי לבדוק יותר מדי באגים, אשב על זה כבר מחר
בינתיים אשמח לשמוע מכם על באגים:

קוד PHP:
<?php 
/** 
 * finds needle in haystack 
 * options: marking needle, calculating percentage, mentioning encoding for multybyte support 
 * 
 * @param string $needle 
 * @param string $haystack 
 * @param bool $marking 
 * @param string $encode 
 * @param string &$percentage 
 */ 

function search($str$haystack$marking false$encode, &$percentage

    
$str iconv($encode'hebrew'$str); 
    
$haystack iconv($encode'hebrew'$haystack); 
     
        
$array explode(' '$str); 
     
    
$total_occur 0// initializing total occurrences 
         
    
foreach($array as $word
    { 
         
        
$replace = ($marking === true) ? ('<u>'.$word.'</u>') : ($word);  

        
$haystack str_ireplace($word$replace$haystack, &$occurrences); 
         
        
$total_occur += $occurrences

     
    if (
$total_occur == 0
    { 
        return 
false
    } 
    else 
    { 
         
        
$percentage floor( ( count($array) > $total_occur ) ? ( ( $total_occur count($array) ) * 100) : (100) ); 
         
        if (
count($array) > count(explode(' 'strip_tags($haystack))) && $total_occur >= count(explode(' 'strip_tags($haystack)))) 
         
            
$percentage 100
         
        return 
iconv('hebrew'$encode$haystack); 
    } 
     

echo 
'<div dir="rtl">'

echo 
search('text''some text to find'true'utf-8', &$percentage); 

echo (isset(
$percentage)) ? ('<br />'.$percentage.'%') : null 

echo 
'</div>'

?>

קוד מלא:



לילה טוב

נערך לאחרונה ע"י netaneldj בתאריך 13-11-2007 בשעה 01:05.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #3  
ישן 15-11-2007, 13:30
צלמית המשתמש של tnadav1
  משתמש זכר tnadav1 tnadav1 אינו מחובר  
 
חבר מתאריך: 02.10.05
הודעות: 2,355
שלח הודעה דרך MSN אל tnadav1
פשש.. שנים חיפשתי משהו דומה
בתגובה להודעה מספר 2 שנכתבה על ידי netaneldj שמתחילה ב "שיט, זה לא טוב :( בכל מקרה,..."

בכל מקרה, מה שאתה יכול הוא עוד לפני הכל לעשות explode ל-heystack ואז אם אתה רץ על כל המילים בלולאה ובודק אם על כל מילות החיפוש שלך עם היא שווה לאחד התאים במערך, אם כן, אתה מפליט את המילה שבמערך, ובכל פעם שיש התאמה אתה מוסיך למשתנה של מספר ההתאמות 1, אם לא אתה משתמש ב- str_ireplace ואז בסוף לעשות implode

יצא לי דיי מסובך.. אבל אתה גם יכול פשוט להוסיף רווחים בתוך בהתחלת המילה ובסוף המילה.. הבעיה היא במקרים שהמילה נמצאת ראשונה אז אין לפנייה רווח, או שהמילה היא למשל אחר-כך ואתה צריך לחפש את המילה אחר.. ובשביל זה צריך ככל הנראה ביטויים רגולאריים ואני מניח שיש לך סיבה טובה לא להשתמש בהם..
_____________________________________


תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 12:20

הדף נוצר ב 0.06 שניות עם 12 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר