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 = $startAya+ getSuraData($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 == 1 && $sura !=1 && $sura !=9)
$aya = preg_replace('/^(([^ ]+ ){4})/u', '', $aya);
// display waqf marks in different style
$aya = preg_replace('/ ([ۖ-۩])/u', '<span class="sign"> $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 ">
</form>
<?php
showSura($sura);
?>
<div class="footer">
Quran text provided by: <a href="http://tanzil.net/">Tanzil.net<a>
</div>
</body>