Twitter text processing library (auto linking and extraction of usernames, lists and hashtags). Based on the Ruby and Java implementations by Matt Sanford. NO LONGER BEING ACTIVELY MAINTAINED BY ME. I RECOMMEND YOU USE ONE OF THE ACTIVE FORKS
Switch branches/tags
Nothing to show
Latest commit e9e1673 May 16, 2011 @mikenz mikenz Update readme
Failed to load latest commit information.
lib/Twitter Updated conformance tests; no protocol-less urls. Jan 5, 2011
tests Updated conformance tests: No changes required. Jan 7, 2011
.gitattributes Updated/fixed .git{attributes,ignore} Jan 26, 2011
.gitignore Updated/fixed .git{attributes,ignore} Jan 26, 2011
LICENSE Remove executable permissions. Jul 15, 2010
README Updated documentation. Jul 15, 2010
README.markdown Update readme May 16, 2011
TODO Added HitHighlighter Oct 12, 2010
phpunit.xml Updated testing - run phpunit from root of project. Jul 16, 2010


Twitter Text (PHP Edition)

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.

Hit Highlighter

  • 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:

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 tests/spyc

There are a couple of options for testing conformance:

  1. Run phpunit in from the root folder of the project.
  2. Run tests/runtests.php from the command line.
  3. Make tests/runtests.php accessible on a web server and view it in your browser.

Thanks & Contributions

The bulk of this library is from the heroic efforts of: