Skip to content
Copy/Paste Detector (CPD) for PHP code.
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Delete stale.yml Jul 2, 2019
build Housekeeping Jan 27, 2019
src Housekeeping Jan 27, 2019
tests Housekeeping Jan 27, 2019
.gitattributes Make the output of git-diff and git-grep more useful for PHP sourcefi… Jan 24, 2012
.gitignore Add .php_cs configuration Nov 16, 2017
.php_cs.dist Housekeeping Jan 27, 2019
.travis.yml Fix: Remove sudo configuration Apr 26, 2019 Housekeeping Jan 27, 2019
LICENSE Cleanup Feb 2, 2018 Update Sep 14, 2018
build.xml Update build automation Nov 16, 2017
composer.json Housekeeping Jan 27, 2019
phive.xml Bump Sep 17, 2018
phpcpd Leftover from bb7953b Sep 14, 2018
phpunit.xml Housekeeping Jan 27, 2019

Latest Stable Version Minimum PHP Version Build Status

PHP Copy/Paste Detector (PHPCPD)

phpcpd is a Copy/Paste Detector (CPD) for PHP code.


PHP Archive (PHAR)

The easiest way to obtain PHPCPD is to download a PHP Archive (PHAR) that has all required dependencies of PHPCPD bundled in a single file:

$ wget
$ chmod +x phpcpd.phar
$ mv phpcpd.phar /usr/local/bin/phpcpd

You can also immediately use the PHAR after you have downloaded it, of course:

$ wget
$ php phpcpd.phar


You can add this tool as a local, per-project, development-time dependency to your project using Composer:

$ composer require --dev sebastian/phpcpd

You can then invoke it using the vendor/bin/phpcpd executable.

Usage Example

$ phpcpd --fuzzy wordpress-4.9.8
phpcpd 4.1.0 by Sebastian Bergmann.

Found 66 clones with 3014 duplicated lines in 40 files:

  - /home/sb/wordpress-4.9.8/wp-includes/Requests/IRI.php:358-708 (350 lines)
  - /home/sb/wordpress-4.9.8/wp-includes/SimplePie/File.php:133-144 (11 lines)

0.86% duplicated lines out of 349460 total lines of code.
Average size of duplication is 45 lines, largest clone has 350 of lines

Time: 1.79 seconds, Memory: 272.00MB
You can’t perform that action at this time.