highlighted code | plain code | download | run
<?php

    
// Quran Metadata Sample Usage
    // By: Hamid Zarrabi-Zadeh
    // http://tanzil.net


    
error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING); 

    
$sura $_REQUEST['sura'];
    
    
$quranFile 'quran-simple.txt';   // quran file
    
$metadataFile 'quran-data.xml';  // quran metadata file

    
initSuraData();   // initialize sura data array
    

    //------------------ General Functions ---------------------


    // initialize sura data array
    
function initSuraData()
    {
        global 
$suraData$metadataFile;
        
$dataItems = Array("index""start""ayas""name""tname""ename""type""rukus");

        
$quranData file_get_contents($metadataFile);
        
$parser xml_parser_create();
        
xml_parse_into_struct($parser$quranData$values$index);
        
xml_parser_free($parser);

        for (
$i=1$i<=114$i++) 
        {
            
$j $index['SURA'][$i-1];
            foreach (
$dataItems as $item)
                
$suraData[$i][$item] = $values[$j]['attributes'][strtoupper($item)]; 
        }
    }


    
// return given property of a sura
    
function getSuraData($sura$property
    {
        global 
$suraData;
        return 
$suraData[$sura][$property]; 
    }


    
// return contents of a sura 
    
function getSuraContents($sura
    {
        global 
$quranFile;
        
$startAya getSuraData($sura'start');
        
$endAya $startAyagetSuraData($sura'ayas');
        
$quran file($quranFile);
        
$text array_slice($quran$startAya$endAya$startAya); 
        return 
$text;
    }


    
//------------------ Display Functions ---------------------


    
if ($sura 1$sura 1
    if (
$sura 114$sura 114


    
// show sura contents
    
function showSura($sura)
    {
        
$suraName getSuraData($sura'name');
        
$suraText getSuraContents($sura);
        
$showBismillah false// change to true to show Bismillahs
        
$ayaNum 1;
        
        echo 
"<div class=suraName>سورة $suraName</div>";
        foreach (
$suraText as $aya)
        {
            
// remove bismillahs, except for suras 1 and 9
            
if (!$showBismillah && $ayaNum == && $sura !=&& $sura !=9)
                
$aya preg_replace('/^(([^ ]+ ){4})/u'''$aya);
            
// display waqf marks in different style
            
$aya preg_replace('/ ([ۖ-۩])/u''<span class="sign">&nbsp;$1</span>'$aya);
            
            echo 
"<div class=aya><span class=ayaNum>$ayaNum. </span>$aya</div>";
            
$ayaNum++;
        }
    }
    

?>

<!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> Show Sura <?php echo $sura ?> </title>
</head>

<style>
    .suraName {text-align: center; font-size: 20px; padding: 10px 0px;
        border: 1px solid #D4DDCC; background-color: #E4EEDC; margin-top: 7px;}
    .aya {font-family: traditional arabic; direction: rtl; font-size: 28px;
        padding: 10px; background-color: #EEF8E5; border: 1px solid #D4DDCC; border-top: 0px;}
    .aya:hover {background-color: #F7FCE3;}
    .ayaNum {color: green; font-size: smaller;}
    .sign {font-family: times new roman; font-size: 0.9em; color: #FB7600;}
    .footer {text-align: center; margin: 20px 0px; color: #222; font-family: Arial;
        background-color: #f4f4ff; border: 1px solid #ccd; padding: 3px; font: 12px Verdana;}
</style>

<body>

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    Show Sura: <input type="text" value="<?php echo $sura ?>" name="sura" size="4" >
    <input type="submit" value=" Go "> &nbsp;
</form>

<?php
    showSura
($sura); 
?>

<div class="footer">
    Quran text provided by: <a href="http://tanzil.net/">Tanzil.net<a>
</div>
</body>