A library of PHP classes that provide auto-linking and extraction of usernames, lists, hashtags and URLs from tweets. Originally created from twitter-text-rb and twitter-text-java projects by Matt Sanford and ported to PHP by Mike Cochrane, this library has been improved and made more complete by Nick Pope.
- Add links to all matching Twitter usernames (no account verification).
- Add links to all user lists (of the form @username/list-name).
- Add links to all valid hashtags.
- Add links to all URLs.
- Support for international character sets.
- Extract mentioned Twitter usernames (from anywhere in the tweet).
- Extract replied to Twitter usernames (from start of the tweet).
- Extract all user lists (of the form @username/list-name).
- Extract all valid hashtags.
- Extract all URLs.
- Support for international character sets.
- Highlight text specifed by a range by surrounding with a tag.
- Support for highlighting when tweet has already been autolinked.
- Support for international character sets.
For examples, please see tests/example.php
which you can view in a browser or
run from the command line.
You'll need the test data which is in YAML format from the following repository:
https://github.com/mzsanford/twitter-text-conformance
It has already been added as a git submodule so you should just need to run:
git submodule init
git submodule update
As PHP has no native support for YAML you'll need to checkout spyc from svn
into tests/spyc
:
svn checkout https://spyc.googlecode.com/svn/trunk/ tests/spyc
There are a couple of options for testing conformance:
- Run
phpunit
in from the root folder of the project. - Run
tests/runtests.php
from the command line. - Make
tests/runtests.php
accessible on a web server and view it in your browser.
The bulk of this library is from the heroic efforts of:
- Mike Cochrane (https://github.com/mikenz): For the original code
- Nick Pope (https://github.com/ngnpope): For the bulk of the maintenance work to date.
- Twitter will auto link second domains for valid country code extensions like
www.github.io
but will not auto link first level domains likegithub.io
while this class will auto link both. Twitter will not auto link non existent country codes likegithub.pp
while this class will. If you're using this class to predict tweet length, you should be aware of these differences.