SitePoint Sponsor

User Tag List

Page 2 of 4 FirstFirst 1234 LastLast
Results 26 to 50 of 87
  1. #26
    Utopia, Inc. silver trophy
    ScallioXTX's Avatar
    Join Date
    Aug 2008
    Location
    The Netherlands
    Posts
    9,084
    Mentioned
    153 Post(s)
    Tagged
    2 Thread(s)
    The idea you had is okay, but it shouldn't be in the if (strlen($part) == 1){
    It needs to go outside that if statement
    Rémon - Hosting Advisor

    SitePoint forums will switch to Discourse soon! Make sure you're ready for it!

    Minimal Bookmarks Tree
    My Google Chrome extension: browsing bookmarks made easy

  2. #27
    SitePoint Guru
    Join Date
    Aug 2004
    Location
    Canada
    Posts
    730
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by ScallioXTX View Post
    The idea you had is okay, but it shouldn't be in the if (strlen($part) == 1){
    It needs to go outside that if statement :)
    Ok but for some reason the tr is either too early or 1 td or 2 tds too late depending if I add an 1 to the $num or take away 1...
    Code php:
    foreach($string_split as $i=>$part){
    	$num=$i+1;//for the sake of the tr problem
    	if($i!==0 && $num % $skiprow == 0){
    		$string_split[$i] = "</tr><tr><td style=\"border: 1px solid black;\">".$string_split[$i]."</td>\n";
    	}else{	
    		if(strlen($part) == 1){
    			$string_split[$i] = "<td style=\"border: 1px solid black;\">".$string_split[$i]."</td>\n";
    		}
    	}
    }
    Compare bible texts (and other tools):
    TheWheelofGod

  3. #28
    Utopia, Inc. silver trophy
    ScallioXTX's Avatar
    Join Date
    Aug 2008
    Location
    The Netherlands
    Posts
    9,084
    Mentioned
    153 Post(s)
    Tagged
    2 Thread(s)
    PHP Code:
    foreach($string_split as $i=>$part)
    {
      if (
    strlen($part) == 1)
      {
        
    $string_split[$i] = '<td>' $string_split[$i] . '</td>';
      }
        if (
    $i $skiprow==&& $i>0)
        {
            
    $string_split[$i] = '</tr><tr>' $string_split[$i];
        }
    }

    echo 
    '<table border=1><tr>'implode("\n"$string_split), '</tr></table>'
    Rémon - Hosting Advisor

    SitePoint forums will switch to Discourse soon! Make sure you're ready for it!

    Minimal Bookmarks Tree
    My Google Chrome extension: browsing bookmarks made easy

  4. #29
    SitePoint Addict dotancohen's Avatar
    Join Date
    Aug 2005
    Location
    Haifa
    Posts
    314
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I didn't read the whole thread, but it seems to me that the OP wants to find occurrences of words in the matrix of letters, be the occurrence in any orientation.
    אני מכיר את התרגיל!‏

    I suggest looking for the first occurrence of the first letter of the $needle, then the first occurrence of the second letter. See if there is a pattern, such as ($occurencePosition2-$occurencePosition1==$lengthOfLine) for vertical text, or ($occurencePosition2-$occurencePosition1==$lengthOfLine+1) for diagonal text. Then take it from there.

    בהצלחה!‏
    Good luck!
    . Have a question?
    . . What Is Firefox?
    . . . . What Is Open Office?
    . . . . . . What Is What?

  5. #30
    SitePoint Guru
    Join Date
    Aug 2004
    Location
    Canada
    Posts
    730
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    The dilemma is that in order to break down the text I have to convert the Hebrew letters into english to use the split function and then reconvert to hebrew. But this messes up your code as $string cannot be used and it give error.

    Code PHP:
    <table style="float: left; direction: rtl; text-align: left; padding: 5px;">
        <tr>
    <?php
    for($i=0; $i<$skiprow; $i++){
    	$num=$i+1;
    	echo "<th style=\"border: 1px solid black; font-size: 14px;\">".$num."</th>\n";
    }
    ?>
        </tr>
        <tr>
    <?php
    $text_of_this_chapter=implode("", $textData);
    include("../includefiles/vowelmarks.php");
    for($i=0; $i<count($vm); $i++){
    	$text_of_this_chapter=str_replace($vm[$i], "", $text_of_this_chapter);
    }
    $text_of_this_chapter=str_replace(" ", "", $text_of_this_chapter);
    for($i=0; $i<count($alephbet); $i++){
    	$text_of_this_chapter=str_replace($alephbet[$i], $alphabet[$i], $text_of_this_chapter);
    }
    $into_letters=str_split($text_of_this_chapter);
    for($i=0; $i<count($alphabet); $i++){
    	$into_letters=str_replace($alphabet[$i], $alephbet[$i], $into_letters);
    }
     
    $skiprow=isset($_GET['skiprow']) ? $_GET['skiprow'] : '';
    $word=isset($_GET['word']) ? $_GET['word'] : '';
    $string=$text_of_this_chapter;//$string="abclxxxoxxxvxxleoyvye";
     
    $COLORS=array('red', 'blue');
    //$string_split=str_split($string);
    $chars=str_split($word);
    $strlen=strlen($string);
    if($skiprow=="all"){
    	$skiprow=$strlen;
    }
    $instances=array();
    $continue=true;
    $pos=0;
     
    while($continue){
    	$instance=array();
    	foreach($chars as $char){
    		if(($newPos=strpos($string, $char, $pos)) !== false){//this is where I get the error because of $string
    			array_push($instance, $newPos);
    			$string=substr_replace($string, '#', $newPos, 1);
    			$pos=$newPos;
    		}else{
    			$continue=false;
    			break;
    		}
        }
    	if(count($instance)==count($chars)){
    		array_push($instances, $instance);
    		$pos=0;
    	}
    }
    foreach ($instances as $i=>$instance){
    	$color=$COLORS[$i];
    	foreach($instance as $char){
    		$into_letters[$char]="<td id=\"td_".$num."\" style=\"border: 1px solid black; font-weight: bold; color: ".$color."; font-size: 14px;".$hebrew_font."\">".$into_letters[$char]."</td>\n";
    	}
    }
    foreach($into_letters as $i=>$part){
    	if (strlen($part) == 1){
    		$into_letters[$i] = "<td id=\"td_".$num."\" style=\"border: 1px solid black; font-size: 14px;".$hebrew_font."\">".$into_letters[$i]."</td>";
    	}
    	if ($i % $skiprow==0 && $i>0){
    		$into_letters[$i] = "</tr><tr>".$into_letters[$i];
    	}
    }
     
    echo implode("", $into_letters);
    ?>
    </tr>
    </table>
    Compare bible texts (and other tools):
    TheWheelofGod

  6. #31
    Utopia, Inc. silver trophy
    ScallioXTX's Avatar
    Join Date
    Aug 2008
    Location
    The Netherlands
    Posts
    9,084
    Mentioned
    153 Post(s)
    Tagged
    2 Thread(s)
    Could you give an example string on which it breaks?

    PS. Have a look at strtr
    Rémon - Hosting Advisor

    SitePoint forums will switch to Discourse soon! Make sure you're ready for it!

    Minimal Bookmarks Tree
    My Google Chrome extension: browsing bookmarks made easy

  7. #32
    SitePoint Guru
    Join Date
    Aug 2004
    Location
    Canada
    Posts
    730
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by ScallioXTX View Post
    Could you give an example string on which it breaks?

    PS. Have a look at strtr :)
    I use this:
    Code PHP:
    <?php
    $vm=array("ְ", "ּ", "ֵ", "ִ", "ׁ", "֖", "ָ", "ֱ", "ֹ", "ֵ", "ַ", "ׁ", "ֽ", "ֶ", "֣", "֑", "֥", "֥", "־", "֗", "֙", "֙", "֔", "֔", "׃", "־", "֗", "֙", "֙", "֔", "֔", "֧", "֛", "֨", "֤", " ׀ ", "ׂ", "֮", "֒", "ֲ", "ֲ", "֚", "֚", " ֜", "֠", "֩", "֜", "֞", "֕", "֡", "ֻ", "ֻ", "ֳ", "פ  ׃");
    ?>
    I've included anything, (besides the vowel marks) such as the characters which note a separation of a paragraph dashes, double points used as periods...I will have to look into strtr. But I don't understand why if(($newPos=strpos($string, $char, $pos)) !== false){ says:
    Warning: strpos() [function.strpos]: Empty delimiter
    I think I know now $chars is related to $word and I haven't changed this yet.

    Ok that's dealt with. But the html shows:
    Code html:
    <tr>
    בראשיתבראאלהימאתהשמימואתהארצוהארצהיתהתהוובהווחשכעל</tr><tr>פניתהומורוחאלהיממרחפתעלפניהמימויאמראלהימיהיאורויהי</tr><tr>אורויראאלהימאתהאורכיטובויבדלאלהימבינהאורובינהחשכוי</tr><tr>קראאלהימלאוריומולחשכקראלילהויהיערבויהיבקריומאחדויא</tr><tr>מראלהימיהירקיעבתוכהמימויהימבדילבינמימלמימויעשאלהימ</tr><tr>אתהרקיעויבדלבינהמימאשרמתחתלרקיעובינהמימאשרמעללרקיע</tr><tr>ויהיכנויקראאלהימלרקיעשמימויהיערבויהיבקריומשניויאמר</tr><tr>אלהימיקווהמיממתחתהשמימאלמקומאחדותראההיבשהויהיכנויק</tr><tr>ראאלהימליבשהארצולמקוההמימקראימימויראאלהימכיטובויאמ</tr><tr>ראלהימתדשאהארצדשאעשבמזריעזרעעצפריעשהפרילמינואשרזרע</tr><tr>ובועלהארצויהיכנותוצאהארצדשאעשבמזריעזרעלמינהוועצעשה</tr><tr>פריאשרזרעובולמינהוויראאלהימכיטובויהיערבויהיבקריומש</tr><tr>לישיויאמראלהימיהימארתברקיעהשמימלהבדילבינהיומובינהל</tr><tr>ילהוהיולאתתולמועדימולימימושנימוהיולמאורתברקיעהשמימ</tr><tr>להאירעלהארצויהיכנויעשאלהימאתשניהמארתהגדלימאתהמאורה</tr><tr>גדללממשלתהיומואתהמאורהקטנלממשלתהלילהואתהכוכבימויתנ</tr><tr>אתמאלהימברקיעהשמימלהאירעלהארצולמשלביומובלילהולהבדי</tr><tr>לבינהאורובינהחשכויראאלהימכיטובויהיערבויהיבקריומרבי</tr><tr>עיויאמראלהימישרצוהמימשרצנפשחיהועופיעופפעלהארצעלפני</tr><tr>רקיעהשמימויבראאלהימאתהתנינמהגדלימואתכלנפשהחיההרמשת</tr><tr>אשרשרצוהמימלמינהמואתכלעופכנפלמינהוויראאלהימכיטובוי</tr><tr>ברכאתמאלהימלאמרפרוורבוומלאואתהמימבימימוהעופירבבארצ</tr><tr>ויהיערבויהיבקריומחמישיויאמראלהימתוצאהארצנפשחיהלמינ</tr><tr>הבהמהורמשוחיתוארצלמינהויהיכנויעשאלהימאתחיתהארצלמינ</tr><tr>הואתהבהמהלמינהואתכלרמשהאדמהלמינהוויראאלהימכיטובויא</tr><tr>מראלהימנעשהאדמבצלמנוכדמותנווירדובדגתהימובעופהשמימו</tr><tr>בבהמהובכלהארצובכלהרמשהרמשעלהארצויבראאלהימאתהאדמבצל</tr><tr>מובצלמאלהימבראאתוזכרונקבהבראאתמויברכאתמאלהימויאמרל</tr><tr>המאלהימפרוורבוומלאואתהארצוכבשהורדובדגתהימובעופהשמי</tr><tr>מובכלחיההרמשתעלהארצויאמראלהימהנהנתתילכמאתכלעשבזרעז</tr><tr>רעאשרעלפניכלהארצואתכלהעצאשרבופריעצזרעזרעלכמיהיהלאכ</tr><tr>להולכלחיתהארצולכלעופהשמימולכלרומשעלהארצאשרבונפשחיה</tr><tr>אתכלירקעשבלאכלהויהיכנויראאלהימאתכלאשרעשהוהנהטובמאד</tr><tr>ויהיערבויהיבקריומהששי</tr>
    But supposed to break the string into characters and place them each character wrapped in td tags.
    Compare bible texts (and other tools):
    TheWheelofGod

  8. #33
    SitePoint Guru
    Join Date
    Aug 2004
    Location
    Canada
    Posts
    730
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    This is what I don't understand about the foreach loop. What is => and I've tried reading at php.net but still don't understand it. This is the reason why I can't figure out how to fix the code. For some reason, the code below:
    Code PHP:
    <?php
     
    $text_of_this_chapter=implode("", $textData);
    include("../includefiles/vowelmarks.php");
    for($i=0; $i<count($vm); $i++){
    	$text_of_this_chapter=str_replace($vm[$i], "", $text_of_this_chapter);
    }
    $text_of_this_chapter=str_replace(" ", "", $text_of_this_chapter);
    for($i=0; $i<count($alephbet); $i++){
    	$text_of_this_chapter=str_replace($alephbet[$i], $alphabet[$i], $text_of_this_chapter);
    }
    $into_letters=str_split($text_of_this_chapter);
    for($i=0; $i<count($alphabet); $i++){
    	$into_letters=str_replace($alphabet[$i], $alephbet[$i], $into_letters);
    }
     
    $skiprow=isset($_GET['skiprow']) ? $_GET['skiprow'] : '';
    $word=isset($_GET['word']) ? $_GET['word'] : '';
    $string=$text_of_this_chapter;//$string="abclxxxoxxxvxxleoyvye";
     
    $COLORS=array('red', 'blue');
    //$string_split=str_split($string);
    $chars= $into_heb_letters;//str_split($word);
    $strlen=strlen($string);
    if($skiprow=="all"){
    	$skiprow=$strlen;
    }
    $instances=array();
    $continue=true;
    $pos=0;
     
    while($continue){
    	$instance=array();
    	foreach($chars as $char){
    		if(($newPos=strpos($string, $char, $pos)) !== false){
    			array_push($instance, $newPos);
    			$string=substr_replace($string, '#', $newPos, 1);
    			$pos=$newPos;
    		}else{
    			$continue=false;
    			break;
    		}
        }
    	if(count($instance)==count($chars)){
    		array_push($instances, $instance);
    		$pos=0;
    	}
    }
    ?>
    <table style="float: left; direction: rtl; text-align: left; padding: 5px;">
        <tr>
    <?php
    for($i=0; $i<$skiprow; $i++){
    	$num=$i+1;
    	echo "<th style=\"border: 1px solid black; font-size: 14px;\">".$num."</th>\n";
    }
    ?>
        </tr>
        <tr>
    <?php
    $num=1;
    foreach ($instances as $i=>$instance){
    	$color=$COLORS[$i];
    	foreach($instance as $char){
    		$into_letters[$char]="<td id=\"td_".$num."\" style=\"border: 1px solid black; font-weight: bold; color: ".$color."; font-size: 14px;".$hebrew_font."\">".$into_letters[$char]."</td>\n";
    		$num++;
    	}
    }
    foreach($into_letters as $i=>$part){
    	if (strlen($part) == 1){
    		$into_letters[$i] = "<td id=\"td_".$num."\" style=\"border: 1px solid black; font-size: 14px;".$hebrew_font."\">".$into_letters[$i]."</td>";
    		$num++;
    	}
    	if ($i % $skiprow==0 && $i>0){
    		$into_letters[$i] = "</tr><tr>".$into_letters[$i];
    	}
    }
    //print_r($into_letters);
    echo implode("", $into_letters);
    ?>
    </tr>
    </table>

    the last foreach loop:
    Code PHP:
    foreach($into_letters as $i=>$part){
    	if (strlen($part) == 1){
    		$into_letters[$i] = "<td id=\"td_".$num."\" style=\"border: 1px solid black; font-size: 14px;".$hebrew_font."\">".$into_letters[$i]."</td>";
    		$num++;
    	}
    	if ($i % $skiprow==0 && $i>0){
    		$into_letters[$i] = "</tr><tr>".$into_letters[$i];
    	}
    }
    it's neglecting the first if statement:
    Code HTML4Strict:
    <th style="border: 1px solid black; font-size: 14px;">50</th>
        </tr>
        <tr>
    בראשיתבראאלהימאתהשמימואתהארצוהארצהיתהתהוובהווחשכעל</tr><tr>פניתהומורוחאלהיממרחפתעלפניהמימויאמראלהימיהיאורויהי</tr><tr>אורויראאלהימאתהאורכיטובויבדלאלהימבינהאורובינהחשכוי</tr>
    Compare bible texts (and other tools):
    TheWheelofGod

  9. #34
    Utopia, Inc. silver trophy
    ScallioXTX's Avatar
    Join Date
    Aug 2008
    Location
    The Netherlands
    Posts
    9,084
    Mentioned
    153 Post(s)
    Tagged
    2 Thread(s)
    Ah the alephbet it probably in UTF-8 or or UTF-16 right?

    Try mb_strlen() instead of strlen()
    If that doesn't work try if (strlen($part) < 3)

    As for the => in foreach, it splits the array in keys in values.
    $a as $b=>$c means "loop over $a, setting $b as the key and $c as the value of each element".

    Since in this case $into_letters doesn't have associative keys it simply has numeric keys.

    Add this second line to see what's going on:
    PHP Code:
    foreach($into_letters as $i=>$part){
        echo 
    'The character at position '$i' is "'$part'"<br />';
        if (
    strlen($part) == 1){
            
    $into_letters[$i] = "<td id=\"td_".$num."\" style=\"border: 1px solid black; font-size: 14px;".$hebrew_font."\">".$into_letters[$i]."</td>";
            
    $num++;
        }
        if (
    $i $skiprow==&& $i>0){
            
    $into_letters[$i] = "</tr><tr>".$into_letters[$i];
        }

    Rémon - Hosting Advisor

    SitePoint forums will switch to Discourse soon! Make sure you're ready for it!

    Minimal Bookmarks Tree
    My Google Chrome extension: browsing bookmarks made easy

  10. #35
    SitePoint Guru
    Join Date
    Aug 2004
    Location
    Canada
    Posts
    730
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by scallioxtx View Post
    ah the alephbet it probably in utf-8 or or utf-16 right?

    Try mb_strlen() instead of strlen()
    if that doesn't work try if (strlen($part) < 3)

    as for the => in foreach, it splits the array in keys in values.
    $a as $b=>$c means "loop over $a, setting $b as the key and $c as the value of each element".

    Since in this case $into_letters doesn't have associative keys it simply has numeric keys.

    Add this second line to see what's going on:
    PHP Code:
    foreach($into_letters as $i=>$part){
        echo 
    'the character at position '$i' is "'$part'"<br />';
        if (
    strlen($part) == 1){
            
    $into_letters[$i] = "<td id=\"td_".$num."\" style=\"border: 1px solid black; font-size: 14px;".$hebrew_font."\">".$into_letters[$i]."</td>";
            
    $num++;
        }
        if (
    $i $skiprow==&& $i>0){
            
    $into_letters[$i] = "</tr><tr>".$into_letters[$i];
        }

    utf-8
    the character at position 0 is "ב"
    the character at position 1 is "ר"
    the character at position 2 is "א"
    the character at position 3 is "ש"
    the character at position 4 is "י"
    the character at position 5 is "ת"
    Compare bible texts (and other tools):
    TheWheelofGod

  11. #36
    SitePoint Guru
    Join Date
    Aug 2004
    Location
    Canada
    Posts
    730
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I don't think it recognizes $instance:
    Code PHP:
    foreach ($instances as $i=>$instance){echo 'The character at position ', $i, ' is "', $instance, '"<br />';
    	$color=$COLORS[$i];
    	foreach($instance as $char){
    		$into_letters[$char]="<td id=\"td_".$num."\" style=\"border: 1px solid black; font-weight: bold; color: ".$color."; font-size: 14px;".$hebrew_font."\">".$into_letters[$char]."</td>\n";
    		$num++;
    	}
    }
    Because it's not emboldening the letters found.
    Code PHP:
    foreach ($instances as $i=>$instance){
    	echo 'The character at position ', $i, ' is "', $instance, '"<br />';
    	$color=$COLORS[$i];
    	foreach($instance as $char){
    		$into_letters[$char]="<td id=\"td_".$num."\" style=\"border: 1px solid black; font-weight: bold; color: ".$color."; font-size: 14px;".$hebrew_font."\">".$into_letters[$char]."</td>\n";
    		$num++;
    	}
    }
    print_r($instance);
    print_r($instances);
    both show empty arrays.
    Compare bible texts (and other tools):
    TheWheelofGod

  12. #37
    SitePoint Guru
    Join Date
    Aug 2004
    Location
    Canada
    Posts
    730
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I think I found out the reason...that $string in the while loop:
    PHP Code:
    $skiprow=isset($_GET['skiprow']) ? $_GET['skiprow'] : '';
    $word=isset($_GET['word']) ? $_GET['word'] : '';
    $string=$text_of_this_chapter;//$string="abclxxxoxxxvxxleoyvye";

    $COLORS=array('red''blue');
    //$string_split=str_split($string);
    $chars$into_heb_letters;//str_split($word);
    $strlen=strlen($string);
    if(
    $skiprow=="all"){
        
    $skiprow=$strlen;
    }
    $instances=array();
    $continue=true;
    $pos=0;

    while(
    $continue){
        
    $instance=array();
        foreach(
    $chars as $char){
            if((
    $newPos=strpos($string$char$pos)) !== false){
                
    array_push($instance$newPos);
                
    $string=substr_replace($string'#'$newPos1);
                
    $pos=$newPos;
            }else{
                
    $continue=false;
                break;
            }
        }
        if(
    count($instance)==count($chars)){
            
    array_push($instances$instance); //adds to the array
            
    $pos=0;
        }
        echo 
    "string--> ".$string." <--string";

    shows english letters instead of hebrew, because I transposed it, because otherwise str_split would result in diamonds with ? in them.
    Compare bible texts (and other tools):
    TheWheelofGod

  13. #38
    SitePoint Guru
    Join Date
    Aug 2004
    Location
    Canada
    Posts
    730
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I'm trying to plug my variables properly to make it work in this while loop:
    PHP Code:
    $str_into_heb_letters=str_split($text_of_this_chapter);
    for(
    $i=0$i<count($alphabet); $i++){
        
    $str_into_heb_letters=str_replace($alphabet[$i], $alephbet[$i], $str_into_heb_letters);
    }
    ...
    $string=implode(""$str_into_heb_letters); 
    I imploded to use that in:
    PHP Code:
    while($continue){
        
    $instance=array();
        foreach(
    $chars as $char){
            if((
    $newPos=strpos($string$char$pos)) !== false){
                
    array_push($instance$newPos);
                
    $string=substr_replace($string'#'$newPos1);
                
    $pos=$newPos;
            }else{
                
    $continue=false;
                break;
            }
        }
        if(
    count($instance)==count($chars)){
            
    array_push($instances$instance);
            
    $pos=0;
        }

    But something went wrong and the page is showing blank tds.
    What is the $continue doing?
    Compare bible texts (and other tools):
    TheWheelofGod

  14. #39
    SitePoint Guru
    Join Date
    Aug 2004
    Location
    Canada
    Posts
    730
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I think I'm going to give up at this point. Some things I fixed but it's not doing what I intend it to do:
    Code PHP:
    <?php
    $text_of_this_chapter=implode("", $textData);
    include("../includefiles/vowelmarks.php");
    for($i=0; $i<count($vm); $i++){
    	$text_of_this_chapter=str_replace($vm[$i], "", $text_of_this_chapter);
    }
    $text_of_this_chapter=str_replace(" ", "", $text_of_this_chapter);
    for($i=0; $i<count($alephbet); $i++){
    	$text_of_this_chapter=str_replace($alephbet[$i], $alphabet[$i], $text_of_this_chapter);
    }
    $str_into_heb_letters=str_split($text_of_this_chapter);
    for($i=0; $i<count($alphabet); $i++){
    	$str_into_heb_letters=str_replace($alphabet[$i], $alephbet[$i], $str_into_heb_letters);
    }
    //print_r($str_into_heb_letters);
    $skiprow=isset($_GET['skiprow']) ? $_GET['skiprow'] : '';
    $string=implode("", $str_into_heb_letters);
    $COLORS=array('red', 'blue');
    //$string_split=str_split($string);
    $chars= $into_heb_letters;//renamed the array
    $strlen=strlen($string);
    if($skiprow=="all"){
    	$skiprow=$strlen;
    }
    $instances=array();
    $continue=true;
    $pos=0;
     
    while($continue){
    	$instance=array();
    	foreach($chars as $char){
    		if(($newPos=strpos($string, $char, $pos)) !== false){
    			array_push($instance, $newPos);
    			$string=substr_replace($string, '#', $newPos, 1);
    			$pos=$newPos;
    		}else{
    			$continue=false;
    			break;
    		}
        }
    	if(count($instance)==count($chars)){
    		array_push($instances, $instance); //adds to the array
    		$pos=0;
    	}
    }
    //echo count($instance)." and ".count($chars);
    ?>
    <table style="float: left; direction: rtl; text-align: left; padding: 5px;">
        <tr>
    <?php
    for($i=0; $i<$skiprow; $i++){
    	$num=$i+1;
    	echo "<th style=\"border: 1px solid black; font-size: 14px;\">".$num."</th>\n";
    }
    ?>
        </tr>
        <tr>
    <?php
    $num=1;
    foreach($instances as $i=>$instance){
    	//echo 'The character at position ', $i, ' is "', $instance, '"<br />';
    	$color=$COLORS[$i];
    	foreach($instance as $char){
    		$str_into_heb_letters[$char]="<td id=\"td_".$num."\" style=\"border: 1px solid black; font-weight: bold; color: ".$color."; font-size: 14px;".$hebrew_font."\">".$str_into_heb_letters[$char]."</td>\n";
    		$num++;
    	}
    }
     
    foreach($str_into_heb_letters as $i=>$part){
    	//echo 'The character at position ', $i, ' is "', $part, '"<br />';
    	if (strlen($part)<3){
    		$str_into_heb_letters[$i] = "\n<td id=\"td_".$num."\" style=\"border: 1px solid black; font-size: 14px;".$hebrew_font."\">".$str_into_heb_letters[$i]."</td>";
    		$num++;
    	}
    	if ($i % $skiprow==0 && $i>0){
    		$str_into_heb_letters[$i] = "\n</tr>\n<tr>".$str_into_heb_letters[$i];
    	}
    } 
    //print_r($into_letters);
    echo implode("", $str_into_heb_letters);
    ?>
    </tr>
    </table>
    Words Searched For:

    1. תורה
    And what do I get?
    Compare bible texts (and other tools):
    TheWheelofGod

  15. #40
    SitePoint Guru
    Join Date
    Aug 2004
    Location
    Canada
    Posts
    730
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I put the table in txt mode zipped because it was too big. But my point is that it was making bold and coloring words that are not part of the search at all.
    Attached Files Attached Files
    Compare bible texts (and other tools):
    TheWheelofGod

  16. #41
    SitePoint Guru
    Join Date
    Aug 2004
    Location
    Canada
    Posts
    730
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Ok I put together in one page the string and keyword to search for with a skip of equidistant letter sequences:
    PHP Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Bible Code Example</title>
    </head>

    <body>
    <input id="skiprow" type="text" value="50" />
    <input id="word" type="text" value="תורה" />
    <a href="JavaScript: ext='?skiprow='+document.getElementById('skiprow').value+'&word='+document.getElementById('word').value; window.location=ext;">search this</a><br /><br />
    <?php
    $skiprow
    =isset($_GET['skiprow']) ? $_GET['skiprow'] : '';
    $word=isset($_GET['word']) ? $_GET['word'] : '';

    $text_of_this_chapter="בראשיתבראאלהימאתהשמימואתהארצוהארצהיתהתהוובהווחשכעלפניתהומורוחאלהיממרחפתעלפניהמימויאמראלהימיהיאורויהיאורויראאלהימאתהאורכיטובויבדלאלהימבינהאורובינהחשכויקראאלהימלאוריומולחשכקראלילהויהיערבויהיבקריומאחדויאמראלהימיהירקיעבתוכהמימויהימבדילבינמימלמימויעשאלהימאתהרקיעויבדלבינהמימאשרמתחתלרקיעובינהמימאשרמעללרקיעויהיכנויקראאלהימלרקיעשמימויהיערבויהיבקריומשניויאמראלהימיקווהמיממתחתהשמימאלמקומאחדותראההיבשהויהיכנויקראאלהימליבשהארצולמקוההמימקראימימויראאלהימכיטובויאמראלהימתדשאהארצדשאעשבמזריעזרעעצפריעשהפרילמינואשרזרעובועלהארצויהיכנותוצאהארצדשאעשבמזריעזרעלמינהוועצעשהפריאשרזרעובולמינהוויראאלהימכיטובויהיערבויהיבקריומשלישיויאמראלהימיהימארתברקיעהשמימלהבדילבינהיומובינהלילהוהיולאתתולמועדימולימימושנימוהיולמאורתברקיעהשמימלהאירעלהארצויהיכנויעשאלהימאתשניהמארתהגדלימאתהמאורהגדללממשלתהיומואתהמאורהקטנלממשלתהלילהואתהכוכבימויתנאתמאלהימברקיעהשמימלהאירעלהארצולמשלביומובלילהולהבדילבינהאורובינהחשכויראאלהימכיטובויהיערבויהיבקריומרביעיויאמראלהימישרצוהמימשרצנפשחיהועופיעופפעלהארצעלפנירקיעהשמימויבראאלהימאתהתנינמהגדלימואתכלנפשהחיההרמשתאשרשרצוהמימלמינהמואתכלעופכנפלמינהוויראאלהימכיטובויברכאתמאלהימלאמרפרוורבוומלאואתהמימבימימוהעופירבבארצויהיערבויהיבקריומחמישיויאמראלהימתוצאהארצנפשחיהלמינהבהמהורמשוחיתוארצלמינהויהיכנויעשאלהימאתחיתהארצלמינהואתהבהמהלמינהואתכלרמשהאדמהלמינהוויראאלהימכיטובויאמראלהימנעשהאדמבצלמנוכדמותנווירדובדגתהימובעופהשמימובבהמהובכלהארצובכלהרמשהרמשעלהארצויבראאלהימאתהאדמבצלמובצלמאלהימבראאתוזכרונקבהבראאתמויברכאתמאלהימויאמרלהמאלהימפרוורבוומלאואתהארצוכבשהורדובדגתהימובעופהשמימובכלחיההרמשתעלהארצויאמראלהימהנהנתתילכמאתכלעשבזרעזרעאשרעלפניכלהארצואתכלהעצאשרבופריעצזרעזרעלכמיהיהלאכלהולכלחיתהארצולכלעופהשמימולכלרומשעלהארצאשרבונפשחיהאתכלירקעשבלאכלהויהיכנויראאלהימאתכלאשרעשהוהנהטובמאדויהיערבויהיבקריומהששי";
    $alephbet= Array("א""ב""ג""ד""ה""ו""ז""ח""ט""י""כ""ל""מ""נ""ס""ע""פ""צ""ק""ר""ש""ת""ך""ם""ן""ף""ץ");
    $alphabet= Array("a""b""g""d""h""u""z""x""w""i""k""l""m""n""c""o""p""e""q""r""f""t""k""m""n""p""e");
    $into_alephbet= Array("א""ב""ג""ד""ה""ו""ז""ח""ט""י""כ""ל""מ""נ""ס""ע""פ""צ""ק""ר""ש""ת");
    $vm=array("ְ""ּ""ֵ""ִ""ׁ""֖""ָ""ֱ""ֹ""ֵ""ַ""ׁ""ֽ""ֶ""֣""֑""֥""֥""־""֗""֙""֙""֔""֔""׃""־""֗""֙""֙""֔""֔""֧""֛""֨""֤"" ׀ ""ׂ""֮""֒""ֲ""ֲ""֚""֚"" ֜""֠""֩""֜""֞""֕""֡""ֻ""ֻ""ֳ""פ  ׃");
    $chars=Array();
    $keyword_letters=Array();
    $chars=Array();
    $strKeyword=$word;
    for(
    $i=0$i<count($alephbet); $i++){
        
    $strKeyword=str_replace($alephbet[$i], $alphabet[$i], $strKeyword);
    }
    $strKeyword=str_replace(" """$strKeyword);
    $kw_into_letters=str_split($strKeyword);
    for(
    $eng=0$eng<count($kw_into_letters); $eng++){
        for(
    $heb=0$heb<count($into_alephbet); $heb++){
            if(
    $alphabet[$heb]==$kw_into_letters[$eng]){
                
    $chars[]=$into_alephbet[$heb];
            }
        }
    }
    echo 
    "Looking for:".implode($chars);
    for(
    $i=0$i<count($vm); $i++){
        
    $text_of_this_chapter=str_replace($vm[$i], ""$text_of_this_chapter);
    }
    $text_of_this_chapter=str_replace(" """$text_of_this_chapter);
    for(
    $i=0$i<count($alephbet); $i++){
        
    $text_of_this_chapter=str_replace($alephbet[$i], $alphabet[$i], $text_of_this_chapter);
    }
    $str_into_heb_letters=str_split($text_of_this_chapter);
    for(
    $i=0$i<count($alphabet); $i++){
        
    $str_into_heb_letters=str_replace($alphabet[$i], $alephbet[$i], $str_into_heb_letters);
    }
    $string=$text_of_this_chapter;
    $COLORS=array('red''blue');
    $string_split=$str_into_heb_letters;//str_split($string);
    $strlen=strlen($string);
    if(
    $skiprow=="all"){
        
    $skiprow=$strlen;
    }
    $instances=array();
    $continue=true;
    $pos=0;
    ?>
    <table style="float: left; direction: rtl; text-align: left; padding: 5px;">
        <tr>
    <?php //<th style="border: 1px solid black;"></th>
    for($i=0$i<$skiprow$i++){
        
    $num=$i+1;
        echo 
    "<th style=\"border: 1px solid black; font-size: 14px;\">".$num."</th>\n";
    }
    ?>
        </tr>
        <tr>
    <?php
    while($continue){
        
    $instance=array();
        foreach(
    $chars as $char){
            if((
    $newPos=strpos($string$char$pos)) !== false){
                
    array_push($instance$newPos);
                
    $string=substr_replace($string'#'$newPos1);
                
    $pos=$newPos;
            }else{
                
    $continue=false;
                break;
            }
        }
        if(
    count($instance)==count($chars)){
            
    array_push($instances$instance);
            
    $pos=0;
        }
    }
    foreach (
    $instances as $i=>$instance){
        
    //echo 'The character at position ', $i, ' is "', $instance, '"<br />';
        
    $color=$COLORS[$i];
        foreach(
    $instance as $char){
            
    $string_split[$char]="<td style=\"border: 1px solid black; font-weight: bold; color: ".$color.";\">".$string_split[$char]."</td>\n";
        }
    }
    foreach(
    $string_split as $i=>$part){
        
    //echo 'The character at position ', $i, ' is "', $part, '"<br />';
        
    if (strlen($part) <3){
            
    $string_split[$i] = "<td style=\"border: 1px solid black;\">".$string_split[$i]."</td>";
        }
        if (
    $i $skiprow==&& $i>0){
            
    $string_split[$i] = '</tr><tr>'.$string_split[$i];
        }
    }

    echo 
    implode(""$string_split);
    ?>
    </tr>
    </table> 
    </body>
    </html>
    Compare bible texts (and other tools):
    TheWheelofGod

  17. #42
    Twitter: @AnthonySterling silver trophy AnthonySterling's Avatar
    Join Date
    Apr 2008
    Location
    North-East, UK.
    Posts
    6,111
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)
    I would absolutely love to know what the hell is going on here.

    If you ever expect anyone else to maintain your code in the future, I'd leave no trace of your home address or contact details. I'd hunt you down.

    I'm kidding. No I'm not.
    @AnthonySterling: I'm a PHP developer, a consultant for oopnorth.com and the organiser of @phpne, a PHP User Group covering the North-East of England.

  18. #43
    SitePoint Guru
    Join Date
    Aug 2004
    Location
    Canada
    Posts
    730
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by AnthonySterling View Post
    I would absolutely love to know what the hell is going on here. :p

    If you ever expect anyone else to maintain your code in the future, I'd leave no trace of your home address or contact details. I'd hunt you down.

    I'm kidding. No I'm not. :wacko:
    I'm trying to write a code which figures out or finds words in a bigger text in hebrew.
    Here's an example:
    http://www.sitepoint.com/forums/show...7&postcount=14
    where the word love is found twice in the text, one at the skip of +4 letters and the other +2 letters.

    But it's still a challenge to search in a hebrew text, that when you split into letters it can't show you the hebrew letters. But you have to convert to english and then reconvert to hebrew.

    The problem with this code is that it's not highlighting the searched word/code like the love example.
    Compare bible texts (and other tools):
    TheWheelofGod

  19. #44
    SitePoint Guru
    Join Date
    Aug 2004
    Location
    Canada
    Posts
    730
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Ok to try to understand where the problem is I decided to convert the letters into english and try to figure out from there:
    Code PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Bible Code Example</title>
    </head>
     
    <body>
    <input id="skiprow" type="text" value="50" />
    <input id="word" type="text" value="תורה" />
    <a href="JavaScript: ext='?skiprow='+document.getElementById('skiprow').value+'&word='+document.getElementById('word').value; window.location=ext;">search this</a><br /><br />
    <?php
    $skiprow=isset($_GET['skiprow']) ? $_GET['skiprow'] : '';
    $word=isset($_GET['word']) ? $_GET['word'] : '';
     
    $text_of_this_chapter="בראשיתבראאלהימאתהשמימואתהארצוהארצהיתהתהוובהווחשכעלפניתהומורוחאלהיממרחפתעלפניהמימויאמראלהימיהיאורויהיאורויראאלהימאתהאורכיטובויבדלאלהימבינהאורובינהחשכויקראאלהימלאוריומולחשכקראלילהויהיערבויהיבקריומאחדויאמראלהימיהירקיעבתוכהמימויהימבדילבינמימלמימויעשאלהימאתהרקיעויבדלבינהמימאשרמתחתלרקיעובינהמימאשרמעללרקיעויהיכנויקראאלהימלרקיעשמימויהיערבויהיבקריומשניויאמראלהימיקווהמיממתחתהשמימאלמקומאחדותראההיבשהויהיכנויקראאלהימליבשהארצולמקוההמימקראימימויראאלהימכיטובויאמראלהימתדשאהארצדשאעשבמזריעזרעעצפריעשהפרילמינואשרזרעובועלהארצויהיכנותוצאהארצדשאעשבמזריעזרעלמינהוועצעשהפריאשרזרעובולמינהוויראאלהימכיטובויהיערבויהיבקריומשלישיויאמראלהימיהימארתברקיעהשמימלהבדילבינהיומובינהלילהוהיולאתתולמועדימולימימושנימוהיולמאורתברקיעהשמימלהאירעלהארצויהיכנויעשאלהימאתשניהמארתהגדלימאתהמאורהגדללממשלתהיומואתהמאורהקטנלממשלתהלילהואתהכוכבימויתנאתמאלהימברקיעהשמימלהאירעלהארצולמשלביומובלילהולהבדילבינהאורובינהחשכויראאלהימכיטובויהיערבויהיבקריומרביעיויאמראלהימישרצוהמימשרצנפשחיהועופיעופפעלהארצעלפנירקיעהשמימויבראאלהימאתהתנינמהגדלימואתכלנפשהחיההרמשתאשרשרצוהמימלמינהמואתכלעופכנפלמינהוויראאלהימכיטובויברכאתמאלהימלאמרפרוורבוומלאואתהמימבימימוהעופירבבארצויהיערבויהיבקריומחמישיויאמראלהימתוצאהארצנפשחיהלמינהבהמהורמשוחיתוארצלמינהויהיכנויעשאלהימאתחיתהארצלמינהואתהבהמהלמינהואתכלרמשהאדמהלמינהוויראאלהימכיטובויאמראלהימנעשהאדמבצלמנוכדמותנווירדובדגתהימובעופהשמימובבהמהובכלהארצובכלהרמשהרמשעלהארצויבראאלהימאתהאדמבצלמובצלמאלהימבראאתוזכרונקבהבראאתמויברכאתמאלהימויאמרלהמאלהימפרוורבוומלאואתהארצוכבשהורדובדגתהימובעופהשמימובכלחיההרמשתעלהארצויאמראלהימהנהנתתילכמאתכלעשבזרעזרעאשרעלפניכלהארצואתכלהעצאשרבופריעצזרעזרעלכמיהיהלאכלהולכלחיתהארצולכלעופהשמימולכלרומשעלהארצאשרבונפשחיהאתכלירקעשבלאכלהויהיכנויראאלהימאתכלאשרעשהוהנהטובמאדויהיערבויהיבקריומהששי";
    $alephbet= Array("א", "ב", "ג", "ד", "ה", "ו", "ז", "ח", "ט", "י", "כ", "ל", "מ", "נ", "ס", "ע", "פ", "צ", "ק", "ר", "ש", "ת", "ך", "ם", "ן", "ף", "ץ");
    $alphabet= Array("a", "b", "g", "d", "h", "u", "z", "x", "w", "i", "k", "l", "m", "n", "c", "o", "p", "e", "q", "r", "f", "t", "k", "m", "n", "p", "e");
    $into_alephbet= Array("א", "ב", "ג", "ד", "ה", "ו", "ז", "ח", "ט", "י", "כ", "ל", "מ", "נ", "ס", "ע", "פ", "צ", "ק", "ר", "ש", "ת");
    $vm=array("ְ", "ּ", "ֵ", "ִ", "ׁ", "֖", "ָ", "ֱ", "ֹ", "ֵ", "ַ", "ׁ", "ֽ", "ֶ", "֣", "֑", "֥", "֥", "־", "֗", "֙", "֙", "֔", "֔", "׃", "־", "֗", "֙", "֙", "֔", "֔", "֧", "֛", "֨", "֤", " ׀ ", "ׂ", "֮", "֒", "ֲ", "ֲ", "֚", "֚", " ֜", "֠", "֩", "֜", "֞", "֕", "֡", "ֻ", "ֻ", "ֳ", "פ  ׃");
    $chars=Array();
    $keyword_letters=Array();
    $chars=Array();
    $strKeyword=$word;
    for($i=0; $i<count($alephbet); $i++){
    	$strKeyword=str_replace($alephbet[$i], $alphabet[$i], $strKeyword);
    }
    $strKeyword=str_replace(" ", "", $strKeyword);
    $kw_into_letters=str_split($strKeyword);
    for($eng=0; $eng<count($kw_into_letters); $eng++){
    	for($heb=0; $heb<count($into_alephbet); $heb++){
    		if($alphabet[$heb]==$kw_into_letters[$eng]){
    			//$chars[]=$into_alephbet[$heb];
    			$chars[]=$kw_into_letters[$eng];
    		}
    	}
    }
     
    echo "Looking for:".implode($chars);
    for($i=0; $i<count($vm); $i++){
    	$text_of_this_chapter=str_replace($vm[$i], "", $text_of_this_chapter);
    }
    $text_of_this_chapter=str_replace(" ", "", $text_of_this_chapter);
    for($i=0; $i<count($alephbet); $i++){
    	$text_of_this_chapter=str_replace($alephbet[$i], $alphabet[$i], $text_of_this_chapter);
    }
    $str_into_heb_letters=str_split($text_of_this_chapter);
    /*
    for($i=0; $i<count($alphabet); $i++){
    	$str_into_heb_letters=str_replace($alphabet[$i], $alephbet[$i], $str_into_heb_letters);
    }
    */
    $string=$text_of_this_chapter;
    $COLORS=array('red', 'blue');
    $string_split=$str_into_heb_letters;//str_split($string);
    $strlen=strlen($string);
    if($skiprow=="all"){
    	$skiprow=$strlen;
    }
    $instances=array();
    $continue=true;
    $pos=0;
    ?>
    <table style="float: left; direction: rtl; text-align: left; padding: 5px;">
        <tr>
    <?php //<th style="border: 1px solid black;"></th>
    for($i=0; $i<$skiprow; $i++){
    	$num=$i+1;
    	echo "<th style=\"border: 1px solid black; font-size: 14px;\">".$num."</th>\n";
    }
    ?>
        </tr>
        <tr>
    <?php
    while($continue){
    	$instance=array();
    	foreach($chars as $char){
    		//echo $char;
    		if(($newPos=strpos($string, $char, $pos)) !== false){
    			array_push($instance, $newPos);
    			$string=substr_replace($string, '#', $newPos, 1);
    			$pos=$newPos;
    		}else{
    			$continue=false;
    			break;
    		}
        }
    	if(count($instance)==count($chars)){
    		array_push($instances, $instance);
    		$pos=0;
    	}
    }
    foreach ($instances as $i=>$instance){
    	$color="red";//$COLORS[$i];
    	foreach($instance as $char){
    		$string_split[$char]="<td style=\"border: 1px solid black; font-weight: bold; color: ".$color.";\">".$string_split[$char]."</td>\n";
    	}
    }
    foreach($string_split as $i=>$part){
    	//echo 'The character at position ', $i, ' is "', $part, '"<br />';
    	if (strlen($part) < 3){
    		$string_split[$i] = "<td style=\"border: 1px solid black;\">".$string_split[$i]."</td>";
    	}
    	if ($i % $skiprow==0 && $i>0){
    		$string_split[$i] = "\n</tr>\n<tr>\n".$string_split[$i];
    	}
    }
     
    echo implode("", $string_split);
    ?>
    </tr>
    </table> 
    </body>
    </html>
    I'm searching the word turh. At the skip of 50 there should be one starting from the 6th letter from the top left. If you test this code about you'll find this but for some reason it's not coloring red nor making the find bold in the style.

    ScallioXTX, I don't understand. How different is this from your example that it's not working?
    Compare bible texts (and other tools):
    TheWheelofGod

  20. #45
    SitePoint Guru
    Join Date
    Aug 2004
    Location
    Canada
    Posts
    730
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Ok one last post from me. Using scallioXTX's solution:
    Code PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Bible Code Example</title>
    </head>
     
    <body>
    <input id="skiprow" type="text" value="50" />
    <input id="word" type="text" value="תורה" />
    <a href="JavaScript: ext='?skiprow='+document.getElementById('skiprow').value+'&word='+document.getElementById('word').value; window.location=ext;">search this</a><br /><br />
    <?php
    $skiprow=isset($_GET['skiprow']) ? $_GET['skiprow'] : '';
    $word=isset($_GET['word']) ? $_GET['word'] : '';
     
    $text_of_this_chapter="בראשיתבראאלהימאתהשמימואתהארצוהארצהיתהתהוובהווחשכעלפניתהומורוחאלהיממרחפתעלפניהמימויאמראלהימיהיאורויהיאורויראאלהימאתהאורכיטובויבדלאלהימבינהאורובינהחשכויקראאלהימלאוריומולחשכקראלילהויהיערבויהיבקריומאחדויאמראלהימיהירקיעבתוכהמימויהימבדילבינמימלמימויעשאלהימאתהרקיעויבדלבינהמימאשרמתחתלרקיעובינהמימאשרמעללרקיעויהיכנויקראאלהימלרקיעשמימויהיערבויהיבקריומשניויאמראלהימיקווהמיממתחתהשמימאלמקומאחדותראההיבשהויהיכנויקראאלהימליבשהארצולמקוההמימקראימימויראאלהימכיטובויאמראלהימתדשאהארצדשאעשבמזריעזרעעצפריעשהפרילמינואשרזרעובועלהארצויהיכנותוצאהארצדשאעשבמזריעזרעלמינהוועצעשהפריאשרזרעובולמינהוויראאלהימכיטובויהיערבויהיבקריומשלישיויאמראלהימיהימארתברקיעהשמימלהבדילבינהיומובינהלילהוהיולאתתולמועדימולימימושנימוהיולמאורתברקיעהשמימלהאירעלהארצויהיכנויעשאלהימאתשניהמארתהגדלימאתהמאורהגדללממשלתהיומואתהמאורהקטנלממשלתהלילהואתהכוכבימויתנאתמאלהימברקיעהשמימלהאירעלהארצולמשלביומובלילהולהבדילבינהאורובינהחשכויראאלהימכיטובויהיערבויהיבקריומרביעיויאמראלהימישרצוהמימשרצנפשחיהועופיעופפעלהארצעלפנירקיעהשמימויבראאלהימאתהתנינמהגדלימואתכלנפשהחיההרמשתאשרשרצוהמימלמינהמואתכלעופכנפלמינהוויראאלהימכיטובויברכאתמאלהימלאמרפרוורבוומלאואתהמימבימימוהעופירבבארצויהיערבויהיבקריומחמישיויאמראלהימתוצאהארצנפשחיהלמינהבהמהורמשוחיתוארצלמינהויהיכנויעשאלהימאתחיתהארצלמינהואתהבהמהלמינהואתכלרמשהאדמהלמינהוויראאלהימכיטובויאמראלהימנעשהאדמבצלמנוכדמותנווירדובדגתהימובעופהשמימובבהמהובכלהארצובכלהרמשהרמשעלהארצויבראאלהימאתהאדמבצלמובצלמאלהימבראאתוזכרונקבהבראאתמויברכאתמאלהימויאמרלהמאלהימפרוורבוומלאואתהארצוכבשהורדובדגתהימובעופהשמימובכלחיההרמשתעלהארצויאמראלהימהנהנתתילכמאתכלעשבזרעזרעאשרעלפניכלהארצואתכלהעצאשרבופריעצזרעזרעלכמיהיהלאכלהולכלחיתהארצולכלעופהשמימולכלרומשעלהארצאשרבונפשחיהאתכלירקעשבלאכלהויהיכנויראאלהימאתכלאשרעשהוהנהטובמאדויהיערבויהיבקריומהששי";
    $alephbet= Array("א", "ב", "ג", "ד", "ה", "ו", "ז", "ח", "ט", "י", "כ", "ל", "מ", "נ", "ס", "ע", "פ", "צ", "ק", "ר", "ש", "ת", "ך", "ם", "ן", "ף", "ץ");
    $alphabet= Array("a", "b", "g", "d", "h", "u", "z", "x", "w", "i", "k", "l", "m", "n", "c", "o", "p", "e", "q", "r", "f", "t", "k", "m", "n", "p", "e");
    $into_alephbet= Array("א", "ב", "ג", "ד", "ה", "ו", "ז", "ח", "ט", "י", "כ", "ל", "מ", "נ", "ס", "ע", "פ", "צ", "ק", "ר", "ש", "ת");
    $vm=array("ְ", "ּ", "ֵ", "ִ", "ׁ", "֖", "ָ", "ֱ", "ֹ", "ֵ", "ַ", "ׁ", "ֽ", "ֶ", "֣", "֑", "֥", "֥", "־", "֗", "֙", "֙", "֔", "֔", "׃", "־", "֗", "֙", "֙", "֔", "֔", "֧", "֛", "֨", "֤", " ׀ ", "ׂ", "֮", "֒", "ֲ", "ֲ", "֚", "֚", " ֜", "֠", "֩", "֜", "֞", "֕", "֡", "ֻ", "ֻ", "ֳ", "פ  ׃");
     
    $keyword_letters=Array();
    $chars=Array();
    $strKeyword=$word;
    for($i=0; $i<count($alephbet); $i++){
    	$strKeyword=str_replace($alephbet[$i], $alphabet[$i], $strKeyword);
    }
    $strKeyword=str_replace(" ", "", $strKeyword);
    $kw_into_letters=str_split($strKeyword);
    for($eng=0; $eng<count($kw_into_letters); $eng++){
    	for($heb=0; $heb<count($into_alephbet); $heb++){
    		if($alphabet[$heb]==$kw_into_letters[$eng]){
    			//$chars[]=$into_alephbet[$heb];
    			$chars[]=$kw_into_letters[$eng];
    		}
    	}
    }
    echo "Looking for:".implode($chars);
    for($i=0; $i<count($vm); $i++){
    	$text_of_this_chapter=str_replace($vm[$i], "", $text_of_this_chapter);
    }
    $text_of_this_chapter=str_replace(" ", "", $text_of_this_chapter);
    for($i=0; $i<count($alephbet); $i++){
    	$text_of_this_chapter=str_replace($alephbet[$i], $alphabet[$i], $text_of_this_chapter);
    }
    $str_into_heb_letters=str_split($text_of_this_chapter);
    /*
    for($i=0; $i<count($alphabet); $i++){
    	$str_into_heb_letters=str_replace($alphabet[$i], $alephbet[$i], $str_into_heb_letters);
    }
    */
    //$string="abclxxxoxxxvxxleoyvyeloveabclxxxoxxxvxxleoyvyeloveabclxxxoxxxvxxleoyvyeloveabclxxxoxxxvxxleoyvyeloveabclxxxoxxxvxxleoyvyelove";
    //$string_split=str_split($string);
    //$chars=str_split("love");
     
    $string=$text_of_this_chapter;
    $string_split=str_split($string);
    $chars=str_split("turh");
     
    $COLORS=array('red', 'blue');
    $strlen=strlen($string);
    if($skiprow=="all"){
    	$skiprow=$strlen;
    }
    $instances=array();
    $continue=true;
    $pos=0;
    ?>
    <table style="float: left; direction: rtl; text-align: left; padding: 5px;">
        <tr>
    <?php //<th style="border: 1px solid black;"></th>
    for($i=0; $i<$skiprow; $i++){
    	$num=$i+1;
    	echo "<th style=\"border: 1px solid black; font-size: 14px;\">".$num."</th>\n";
    }
    ?>
        </tr>
        <tr>
    <?php
    while($continue){
    	$instance=array();
    	foreach($chars as $char){
    		//echo $char;
    		if(($newPos=strpos($string, $char, $pos)) !== false){
    			array_push($instance, $newPos);
    			$string=substr_replace($string, '#', $newPos, 1);
    			$pos=$newPos;
    		}else{
    			$continue=false;
    			break;
    		}
        }
    	if(count($instance)==count($chars)){
    		array_push($instances, $instance);
    		$pos=0;
    	}
    }
    foreach ($instances as $i=>$instance){
    	$color="red";//$COLORS[$i];
    	foreach($instance as $char){
    		$string_split[$char]="<td style=\"border: 1px solid black; font-weight: bold; color: ".$color.";\">".$string_split[$char]."</td>\n";
    	}
    }
    foreach($string_split as $i=>$part){
    	//echo 'The character at position ', $i, ' is "', $part, '"<br />';
    	if (strlen($part) == 1){
    		$string_split[$i] = "<td style=\"border: 1px solid black;\">".$string_split[$i]."</td>";
    	}
    	if ($i % $skiprow==0 && $i>0){
    		$string_split[$i] = "\n</tr>\n<tr>\n".$string_split[$i];
    	}
    }
     
    echo implode("", $string_split);
    ?>
    </tr>
    </table> 
    </body>
    </html>
    Remove the forward slashes and add them to the others and it works fine:
    Code PHP:
    //$string="abclxxxoxxxvxxleoyvyeloveabclxxxoxxxvxxleoyvyeloveabclxxxoxxxvxxleoyvyeloveabclxxxoxxxvxxleoyvyeloveabclxxxoxxxvxxleoyvyelove";
    //$string_split=str_split($string);
    //$chars=str_split("love");
     
    $string=$text_of_this_chapter;
    $string_split=str_split($string);
    $chars=str_split("turh");
    You'll find 3 occurrences of the word love: one at the skip of one letter, the second at the skip of 4 letters and another at a skip of 2 letters. Actually I multiplied the pattern to see if sooner or later it's going to be messed up but not at all. Everything's good.

    But if you test it with the anglicized hebrew letters it doesn't work!!!
    You might want to add an array of $COLORS:
    Code php:
    $colors = Array(
    "Red",
    "Blue",
    "Green",
    "Orange",
    "Pink",
    "Sienna",
    "DarkOliveGreen",
    "DarkGreen",
    "DarkSlateBlue",
    "Navy",
    "Indigo",
    "DarkSlateGray",
    "DarkRed",
    "DarkOrange",
    "Olive",
    "Teal",
    "SlateGray",
    "DimGray",
    "SandyBrown",
    "YellowGreen",
    "SeaGreen",
    "MediumTurquoise",
    "Purple",
    "Gray",
    "LemonChiffon",
    "Magenta",
    "Yellow",
    "Lime",
    "Cyan",
    "DeepSkyBlue",
    "DarkOrchid",
    "Silver",
    "PaleTurquoise",
    "Wheat",
    "PaleGreen",
    "LightBlue",
    "Plum",
    "Black"
    );
     
    $COLORS = Array();
    for($c=0; $c<count($colors); $c++){
    	$COLORS[$c]=strtolower($colors[$c]);
    }
    edited in:
    I think ScallioXTX's code is faulty. Add an o replacing the x after the first l and the pattern gets messed up. So that's the problem.
    Compare bible texts (and other tools):
    TheWheelofGod

  21. #46
    Utopia, Inc. silver trophy
    ScallioXTX's Avatar
    Join Date
    Aug 2008
    Location
    The Netherlands
    Posts
    9,084
    Mentioned
    153 Post(s)
    Tagged
    2 Thread(s)
    My code doesn't search for equidistant chars, it does look for repeating patterns. So indeed, it gets stuff wrong.

    I've refactored your code so it's a lot more readable:
    PHP Code:
    <?php
    header
    ('Content-Type: text/html; charset=UTF-8');

    $COLORS = array(
        
    "red""blue""darkgreen"
    );
    $string "בראשיתבראאלהימאתהשמימואתהארצוהארצהיתהתהוובהווחשכעלפניתהומורוחאלהיממרחפתעלפניהמימויאמראלהימיהיאורויהיאורויראאלהימאתהאורכיטובויבדלאלהימבינהאורובינהחשכויקראאלהימלאוריומולחשכקראלילהויהיערבויהיבקריומאחדויאמראלהימיהירקיעבתוכהמימויהימבדילבינמימלמימויעשאלהימאתהרקיעויבדלבינהמימאשרמתחתלרקיעובינהמימאשרמעללרקיעויהיכנויקראאלהימלרקיעשמימויהיערבויהיבקריומשניויאמראלהימיקווהמיממתחתהשמימאלמקומאחדותראההיבשהויהיכנויקראאלהימליבשהארצולמקוההמימקראימימויראאלהימכיטובויאמראלהימתדשאהארצדשאעשבמזריעזרעעצפריעשהפרילמינואשרזרעובועלהארצויהיכנותוצאהארצדשאעשבמזריעזרעלמינהוועצעשהפריאשרזרעובולמינהוויראאלהימכיטובויהיערבויהיבקריומשלישיויאמראלהימיהימארתברקיעהשמימלהבדילבינהיומובינהלילהוהיולאתתולמועדימולימימושנימוהיולמאורתברקיעהשמימלהאירעלהארצויהיכנויעשאלהימאתשניהמארתהגדלימאתהמאורהגדללממשלתהיומואתהמאורהקטנלממשלתהלילהואתהכוכבימויתנאתמאלהימברקיעהשמימלהאירעלהארצולמשלביומובלילהולהבדילבינהאורובינהחשכויראאלהימכיטובויהיערבויהיבקריומרביעיויאמראלהימישרצוהמימשרצנפשחיהועופיעופפעלהארצעלפנירקיעהשמימויבראאלהימאתהתנינמהגדלימואתכלנפשהחיההרמשתאשרשרצוהמימלמינהמואתכלעופכנפלמינהוויראאלהימכיטובויברכאתמאלהימלאמרפרוורבוומלאואתהמימבימימוהעופירבבארצויהיערבויהיבקריומחמישיויאמראלהימתוצאהארצנפשחיהלמינהבהמהורמשוחיתוארצלמינהויהיכנויעשאלהימאתחיתהארצלמינהואתהבהמהלמינהואתכלרמשהאדמהלמינהוויראאלהימכיטובויאמראלהימנעשהאדמבצלמנוכדמותנווירדובדגתהימובעופהשמימובבהמהובכלהארצובכלהרמשהרמשעלהארצויבראאלהימאתהאדמבצלמובצלמאלהימבראאתוזכרונקבהבראאתמויברכאתמאלהימויאמרלהמאלהימפרוורבוומלאואתהארצוכבשהורדובדגתהימובעופהשמימובכלחיההרמשתעלהארצויאמראלהימהנהנתתילכמאתכלעשבזרעזרעאשרעלפניכלהארצואתכלהעצאשרבופריעצזרעזרעלכמיהיהלאכלהולכלחיתהארצולכלעופהשמימולכלרומשעלהארצאשרבונפשחיהאתכלירקעשבלאכלהויהיכנויראאלהימאתכלאשרעשהוהנהטובמאדויהיערבויהיבקריומהששי";

    $alephbet = array(
        
    "א""ב""ג""ד""ה""ו""ז""ח""ט""י""כ""ל""מ""נ""ס""ע""פ""צ""ק""ר""ש""ת""ך""ם""ן""ף""ץ"
    );
    $alphabet = array(
        
    "a""b""g""d""h""u""z""x""w""i""k""l""m""n""c""o""p""e""q""r""f""t""k""m""n""p""e"
    );
    $translate array_combine($alephbet$alphabet);

    $into_alephbet = array(
        
    "א""ב""ג""ד""ה""ו""ז""ח""ט""י""כ""ל""מ""נ""ס""ע""פ""צ""ק""ר""ש""ת"
    );
    $vm = array(
        
    "ְ""ּ""ֵ""ִ""ׁ""֖""ָ""ֱ""ֹ""ֵ""ַ""ׁ""ֽ""ֶ""֣""֑""֥""֥""־""֗""֙""֙""֔""֔""׃""־""֗""֙""֙""֔""֔""֧""֛""֨""֤"" ׀ ""ׂ""֮""֒""ֲ""ֲ""֚""֚"" ֜""֠""֩""֜""֞""֕""֡""ֻ""ֻ""ֳ""פ  ׃"
    );

    $word = isset($_GET['word']) ? $_GET['word'] : '';
    $word str_replace(
        
    ' ',
        
    '',
        
    strtr(
            
    $word,
            
    $translate
        
    )
    );

    $chars = array();
    $kw_into_letters str_split($word);
    for (
    $english 0$english count($kw_into_letters); $english++) {
        for (
    $hebrew 0$hebrew count($into_alephbet); $hebrew++) {
            if (
    $alphabet[$hebrew] == $kw_into_letters[$english]) {
                
    $chars[] = $kw_into_letters[$english];
            }
        }
    }

    echo 
    'Looking for'implode($chars), '<br />';

    $string strtr(
        
    str_replace(
            
    array_merge($vm, array(' ')),
            array(
    ''),
            
    $string
        
    ),
        
    $translate
    );

    $string_split str_split($string);

    $skiprow = isset($_GET['skiprow']) ? $_GET['skiprow'] : 20;
    if (
    $skiprow == 'all') {
        
    $skiprow strlen($string);
    }

    $instances = array();
    $continue true;
    $pos 0;
    ?>
    <table style="float: left; direction: rtl; text-align: left; padding: 5px;">
        <tr>
            <?php
            
    for ($i 0$i $skiprow$i++)
                echo 
    "<th style=\"border: 1px solid black; font-size: 14px; width: 60px;\">" . ($i+1) . "</th>\n";
            
    ?>
        </tr>
        <tr>
            <?php
            
    while ($continue) {
                
    $instance = array();
                foreach (
    $chars as $char) {
                    if ((
    $newPos strpos($string$char$pos)) !== false) {
                        
    array_push($instance$newPos);
                        
    $string substr_replace($string'#'$newPos1);
                        
    $pos $newPos;
                    } else {
                        
    $continue false;
                        break;
                    }
                }
                if (
    count($instance) == count($chars)) {
                    
    array_push($instances$instance);
                    
    $pos 0;
                }
            }
            foreach (
    $instances as $i => $instance) {
                
    $color $COLORS[$i count($COLORS)];
                foreach (
    $instance as $char) {
                    
    $string_split[$char] = "<td style=\"border: 1px solid black; font-weight: bold; color: " $color ";\">" $string_split[$char] . ", <small>$i</small></td>\n";
                }
            }
            foreach (
    $string_split as $i => $part) {
                if (
    strlen($part) == 1) {
                    
    $string_split[$i] = "<td style=\"border: 1px solid black;\">" $string_split[$i] . "</td>";
                }
                if (
    $i $skiprow == && $i 0) {
                    
    $string_split[$i] = "\n</tr>\n<tr>\n" $string_split[$i];
                }
            }
            echo 
    implode(""$string_split);
            
    ?>
        </tr>
    </table>
    I really don't get what you're trying to on line 34 - 42 but I'll just assume it has something to do with translating hebrew to english.

    Anyway, if you want to change the script to search for equidistant characters you need to change this part:

    PHP Code:
    while ($continue) {
        
    $instance = array();
        foreach (
    $chars as $char) {
            if ((
    $newPos strpos($string$char$pos)) !== false) {
                
    array_push($instance$newPos);
                
    $string substr_replace($string'#'$newPos1);
                
    $pos $newPos;
            } else {
                
    $continue false;
                break;
            }
        }
        if (
    count($instance) == count($chars)) {
            
    array_push($instances$instance);
            
    $pos 0;
        }

    That's the part that's actually doing the searching. The rest is display purposes only.
    Rémon - Hosting Advisor

    SitePoint forums will switch to Discourse soon! Make sure you're ready for it!

    Minimal Bookmarks Tree
    My Google Chrome extension: browsing bookmarks made easy

  22. #47
    SitePoint Guru
    Join Date
    Aug 2004
    Location
    Canada
    Posts
    730
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by ScallioXTX View Post
    PHP Code:
    <?php
    header
    ('Content-Type: text/html; charset=UTF-8');

    $COLORS = array(
        
    "red""blue""darkgreen"
    );
    $string "בראשיתבראאלהימאתהשמימואתהארצוהארצהיתהתהוובהווחשכעלפניתהומורוחאלהיממרחפתעלפניהמימויאמראלהימיהיאורויהיאורויראאלהימאתהאורכיטובויבדלאלהימבינהאורובינהחשכויקראאלהימלאוריומולחשכקראלילהויהיערבויהיבקריומאחדויאמראלהימיהירקיעבתוכהמימויהימבדילבינמימלמימויעשאלהימאתהרקיעויבדלבינהמימאשרמתחתלרקיעובינהמימאשרמעללרקיעויהיכנויקראאלהימלרקיעשמימויהיערבויהיבקריומשניויאמראלהימיקווהמיממתחתהשמימאלמקומאחדותראההיבשהויהיכנויקראאלהימליבשהארצולמקוההמימקראימימויראאלהימכיטובויאמראלהימתדשאהארצדשאעשבמזריעזרעעצפריעשהפרילמינואשרזרעובועלהארצויהיכנותוצאהארצדשאעשבמזריעזרעלמינהוועצעשהפריאשרזרעובולמינהוויראאלהימכיטובויהיערבויהיבקריומשלישיויאמראלהימיהימארתברקיעהשמימלהבדילבינהיומובינהלילהוהיולאתתולמועדימולימימושנימוהיולמאורתברקיעהשמימלהאירעלהארצויהיכנויעשאלהימאתשניהמארתהגדלימאתהמאורהגדללממשלתהיומואתהמאורהקטנלממשלתהלילהואתהכוכבימויתנאתמאלהימברקיעהשמימלהאירעלהארצולמשלביומובלילהולהבדילבינהאורובינהחשכויראאלהימכיטובויהיערבויהיבקריומרביעיויאמראלהימישרצוהמימשרצנפשחיהועופיעופפעלהארצעלפנירקיעהשמימויבראאלהימאתהתנינמהגדלימואתכלנפשהחיההרמשתאשרשרצוהמימלמינהמואתכלעופכנפלמינהוויראאלהימכיטובויברכאתמאלהימלאמרפרוורבוומלאואתהמימבימימוהעופירבבארצויהיערבויהיבקריומחמישיויאמראלהימתוצאהארצנפשחיהלמינהבהמהורמשוחיתוארצלמינהויהיכנויעשאלהימאתחיתהארצלמינהואתהבהמהלמינהואתכלרמשהאדמהלמינהוויראאלהימכיטובויאמראלהימנעשהאדמבצלמנוכדמותנווירדובדגתהימובעופהשמימובבהמהובכלהארצובכלהרמשהרמשעלהארצויבראאלהימאתהאדמבצלמובצלמאלהימבראאתוזכרונקבהבראאתמויברכאתמאלהימויאמרלהמאלהימפרוורבוומלאואתהארצוכבשהורדובדגתהימובעופהשמימובכלחיההרמשתעלהארצויאמראלהימהנהנתתילכמאתכלעשבזרעזרעאשרעלפניכלהארצואתכלהעצאשרבופריעצזרעזרעלכמיהיהלאכלהולכלחיתהארצולכלעופהשמימולכלרומשעלהארצאשרבונפשחיהאתכלירקעשבלאכלהויהיכנויראאלהימאתכלאשרעשהוהנהטובמאדויהיערבויהיבקריומהששי";

    $alephbet = array(
        
    "א""ב""ג""ד""ה""ו""ז""ח""ט""י""כ""ל""מ""נ""ס""ע""פ""צ""ק""ר""ש""ת""ך""ם""ן""ף""ץ"
    );
    $alphabet = array(
        
    "a""b""g""d""h""u""z""x""w""i""k""l""m""n""c""o""p""e""q""r""f""t""k""m""n""p""e"
    );
    $translate array_combine($alephbet$alphabet);

    $into_alephbet = array(
        
    "א""ב""ג""ד""ה""ו""ז""ח""ט""י""כ""ל""מ""נ""ס""ע""פ""צ""ק""ר""ש""ת"
    );
    $vm = array(
        
    "ְ""ּ""ֵ""ִ""ׁ""֖""ָ""ֱ""ֹ""ֵ""ַ""ׁ""ֽ""ֶ""֣""֑""֥""֥""־""֗""֙""֙""֔""֔""׃""־""֗""֙""֙""֔""֔""֧""֛""֨""֤"" ׀ ""ׂ""֮""֒""ֲ""ֲ""֚""֚"" ֜""֠""֩""֜""֞""֕""֡""ֻ""ֻ""ֳ""פ  ׃"
    );

    $word = isset($_GET['word']) ? $_GET['word'] : '';
    $word str_replace(
        
    ' ',
        
    '',
        
    strtr(
            
    $word,
            
    $translate
        
    )
    );

    $chars = array();
    $kw_into_letters str_split($word);
    for (
    $english 0$english count($kw_into_letters); $english++) {
        for (
    $hebrew 0$hebrew count($into_alephbet); $hebrew++) {
            if (
    $alphabet[$hebrew] == $kw_into_letters[$english]) {
                
    $chars[] = $kw_into_letters[$english];
            }
        }
    }

    echo 
    'Looking for'implode($chars), '<br />';

    $string strtr(
        
    str_replace(
            
    array_merge($vm, array(' ')),
            array(
    ''),
            
    $string
        
    ),
        
    $translate
    );

    $string_split str_split($string);

    $skiprow = isset($_GET['skiprow']) ? $_GET['skiprow'] : 20;
    if (
    $skiprow == 'all') {
        
    $skiprow strlen($string);
    }

    $instances = array();
    $continue true;
    $pos 0;
    ?>
    <table style="float: left; direction: rtl; text-align: left; padding: 5px;">
        <tr>
            <?php
            
    for ($i 0$i $skiprow$i++)
                echo 
    "<th style=\"border: 1px solid black; font-size: 14px; width: 60px;\">" . ($i+1) . "</th>\n";
            
    ?>
        </tr>
        <tr>
            <?php
            
    while ($continue) {
                
    $instance = array();
                foreach (
    $chars as $char) {
                    if ((
    $newPos strpos($string$char$pos)) !== false) {
                        
    array_push($instance$newPos);
                        
    $string substr_replace($string'#'$newPos1);
                        
    $pos $newPos;
                    } else {
                        
    $continue false;
                        break;
                    }
                }
                if (
    count($instance) == count($chars)) {
                    
    array_push($instances$instance);
                    
    $pos 0;
                }
            }
            foreach (
    $instances as $i => $instance) {
                
    $color $COLORS[$i count($COLORS)];
                foreach (
    $instance as $char) {
                    
    $string_split[$char] = "<td style=\"border: 1px solid black; font-weight: bold; color: " $color ";\">" $string_split[$char] . ", <small>$i</small></td>\n";
                }
            }
            foreach (
    $string_split as $i => $part) {
                if (
    strlen($part) == 1) {
                    
    $string_split[$i] = "<td style=\"border: 1px solid black;\">" $string_split[$i] . "</td>";
                }
                if (
    $i $skiprow == && $i 0) {
                    
    $string_split[$i] = "\n</tr>\n<tr>\n" $string_split[$i];
                }
            }
            echo 
    implode(""$string_split);
            
    ?>
        </tr>
    </table>
    Should the whole thing be in the body section? Since I see the header().
    Compare bible texts (and other tools):
    TheWheelofGod

  23. #48
    Utopia, Inc. silver trophy
    ScallioXTX's Avatar
    Join Date
    Aug 2008
    Location
    The Netherlands
    Posts
    9,084
    Mentioned
    153 Post(s)
    Tagged
    2 Thread(s)
    The header is just because my browser didn't display the hebrew characters correctly. You can remove it if you want.
    Rémon - Hosting Advisor

    SitePoint forums will switch to Discourse soon! Make sure you're ready for it!

    Minimal Bookmarks Tree
    My Google Chrome extension: browsing bookmarks made easy

  24. #49
    SitePoint Guru
    Join Date
    Aug 2004
    Location
    Canada
    Posts
    730
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by ScallioXTX View Post
    The header is just because my browser didn't display the hebrew characters correctly. You can remove it if you want.
    Ok.
    Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 35 bytes) in ...\mybcode5.php on line 178
    Code PHP:
            while ($continue) {
     
                $instance = array();
     
                foreach ($chars as $char) {
     
                    if (($newPos = strpos($string, $char, $pos)) !== false) {
     
                        array_push($instance, $newPos);
     
                        $string = substr_replace($string, '#', $newPos, 1);
     
                        $pos = $newPos;
     
                    } else {
     
                        $continue = false;
     
                        break;
     
                    }
     
                }
     
                if (count($instance) == count($chars)) {
     
                    array_push($instances, $instance);//<---line 178
     
                    $pos = 0;
     
                }
    Compare bible texts (and other tools):
    TheWheelofGod

  25. #50
    SitePoint Guru
    Join Date
    Aug 2004
    Location
    Canada
    Posts
    730
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I think I understand what's happening. The number helped me find patterns but not what I intend. I think I know how to search now.

    First, after the word is broken down into characters, it should search for the first letter throughout all the text.

    And then it should search for the 2nd letter and mark the distance and see if the 3rd letter would occur in the same distance, if not, go on to the next possible distance. If, success then, maybe we need an array marking the color in which the result should appear the letters and the position of the letters.
    If failure then the search should go on to the next first letter and try the same thing.
    Compare bible texts (and other tools):
    TheWheelofGod


Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •