As suggested in the first answer I used the packages from dotdeb.org. To prevent apt from installing all available packages from this repo generally, I used apt-pinning in /etc/apt/preferences as suggested in this answer.
My settings look like this:
security.pref
Pin: release l=Debian-Security
Pin-Priority: 1000
Package: *
stable.pref
Pin: release a=stable
Pin-Priority: 990
Package: *
dotdeb.pref
Package: *
Pin: release o=packages.dotdeb.org
Pin-Priority: 100
Package: libapache2-mod-php5 libapache2-mod-php5filter php-pear php5-cgi php5-cli php5-common php5-curl php5-dbg php5-dev php5-enchant php5-fpm php5-gd php5-gmp php5-imap php5-interbase php5-intl php5-ldap php5-mcrypt php5-mysql php5-odbc php5-pgsql php5-pspell php5-recode php5-snmp php5-sqlite php5-sybase php5-tidy php5-xmlrpc php5-xsl php5
Pin: release o=packages.dotdeb.org
Pin-Priority: 991
(create your sources.list files accordingly as shown in the linked answer above.)
With this setup the dotdeb packages never get installed by default (since security has still a higher priority) and all "non-php" (like nginx, redis, mysql, ..) packages aren't installed at all. (priority: 100)
To install your (wanted) php-packages run apt-get with -t to specify the repository to install from, e.g. like this:
apt-get install -t stable php5-fpm php5-common php5-cgi
(remember that you have to include all dependencies in your install statement!)
You can of course adjust this setup according to your situation. Hope this helps to get you on the right track.
Read more about apt-pinning in this guide and on the man page.