I know you mentioned there would be a command line version, and so here it is. I have however put it in a shell script, which keeps it in a file you can then put into your project or a local bin directory and run again when needed. This worked on a couple of examples I threw together and without any un escaped character errors. As mentioned by previous comments, your code is fine with the noted changes, but I still thought you might be interested in a smaller command line solution as well.
#!/bin/sh
for file in `find ./ -name '*.html'`; do
perl -i.bak -ane "s/<!--#include virtual=\"(.*)\" *-->/<?php include(\
+\$\_SERVER['DOCUMENT_ROOT'].'\$1');?>/g; print;" $file
done
---
echo S 1 [ Y V U | perl -ane 'print reverse map { $_ = chr(ord($_)-1) } @F;'