nystudio107 / php-typography
The KINGdesk PHP Typography library improves typography on the web.
                                    Fund package maintenance!
                                                                            
                                                                                                                                        khalwat
                                                                                    
                                                                
Installs: 21
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 3
pkg:composer/nystudio107/php-typography
Requires
- php: >=5.3.0
This package is auto-updated.
Last update: 2025-10-29 02:22:36 UTC
README
PhpTypography is based on the PHP Typography library by KINGdesk. It is extended to support the PSR-0 autoloading standard.
Installation
Install PhpTypography with composer via
composer require debach/php-typography:dev-master
composer install
and then use the class like
$html       = '...';
$typography = new Debach\PhpTypography\PhpTypography();
$prettyHtml = $typography->process($html);
What PhpTypography does
PhpTypography enhances the typography of the text on your web pages. The following table shows some examples of HTML texts before and after processing.
| Before | After | Explanation | 
|---|---|---|
| explanation | ex­pla­na­tion | Robust hyphenation with soft hyphens ­. The browser will hyphenate words automatically based on the current line width. This is especially useful where the line width is rather small, for example in multi-column texts (CSS propertycolumn-count). | 
| I'm waiting for "Peter" | I’m waiting for “Peter” | Use correct quotes and apostrophes | 
| ... | … | Use the ellipses symbol | 
| A flock of sparrows - some of them juveniles - alighted and sang. | A flock of sparrows — some of them juveniles — alighted and sang. | Use an em-dash instead of a hypen | 
| 14-20 men | 14–20 men | Use an en-dash instead of a hypen in ranges | 
| Acme Corporation & Partners | Acme Corporation <span class="amp">&</span> Partners | Ampersands symbols are marked up so that you can choose a different font for them and make them look beatiful. Search the web for “ampersand font” as a start. | 
For more examples, see the project homepage.
How to use PhpTypography
Construct an instance $typography of Debach\PhpTypography\PhpTypography and call $typography->process($html) on it with the HTML text $html you want to process:
$html       = '<p>I\'m waiting for "Peter"...</p>';
$typography = new Debach\PhpTypography\PhpTypography();
$prettyHtml = $typography->process($html);
echo $prettyHtml;
The above code will print (soft hyphens not shown)
<p>I’m waiting for “Peter”…</p>
By the way, if you’re using the full-stack Symfony framework and Twig, there is also the TypographyBundle which comes with nice little helpers such as the {% typography %} tag and the {{ text|typography }} filter.
Configuration
A thorough explanation of the configuration can be found at the KINGdesk homepage.
Hyphenation depends on the language, which can be set with set_hyphenation_language($languageCode). For example, to set the hyphenation language to French or German, call
$typography->set_hyphenation_language('fr'); // set to French
$typography->set_hyphenation_language('de'); // set to German
The default language is American English. Refer to the filenames in the lang/ directory for an overview of available languages.