These PHP tools are to be used with the AlQuran.cloud and GlobalQuran.com APIs. They are made available so you may get the most out of the APIs.
There's a React equivalent of this package @ https://github.com/aamirbhat382/Tajweed.
For now, a Tajweed and Buck helper. Each section is detailed below.
The tools add developer libraries you can use in your application. Install using composer:
composer require alquran/tools
To get tajweed text to become legible, use:
<?php
require_once('vendor/autoload.php');
$parser = new \AlQuranCloud\Tools\Parser\Tajweed();
$html = $parser->parse($text); // $text is the output text of a Verse from quran-tajweed edition. For example: http://api.alquran.cloud/ayah/24:35/quran-tajweed. Also see data/tajweed.json.
To get tajweed text to become legible, use:
<?php
require_once('vendor/autoload.php');
$parser = new \AlQuranCloud\Tools\Parser\Buck();
$arabic = $parser->toArabic($text); // $text is the output text of a Verse from quran-buck edition. For example: http://api.alquran.cloud/ayah/24:35/quran-buck.
See Buck Documentation.
Yes, with the Tajweed parser. Webkit has a known bug that breaks Arabic with inline tags. There is an experimental fix in the Tajweed Parse class for this using the Zero Width Joiner (), but it still needs some work. I've manually tried this on some Ayahs and ZWJ is not smart enough to parse all the characters and join them properly, so this is not ideal. See See https://stackoverflow.com/questions/11155849/partially-colored-arabic-word-in-html
and https://bugs.webkit.org/show_bug.cgi?id=6148. The issue with parsing in Chrome seems to have been resolved with Chrome's new layout implementation (https://www.chromium.org/blink/layoutng). It has been tested on version 77.0.3865.90.
Most of this code is created using logic from the Global Quran website and codebase.