preg_replaceに「#」を付けるとエラーになります。preg_replaceに「#」を含めるにはどうすればよいですか?
$document = preg_replace('#[^A-Za-z 0-9,.?$@!&;]#i', '', $document); 
    preg_replaceに「#」を付けるとエラーになります。preg_replaceに「#」を含めるにはどうすればよいですか?
$document = preg_replace('#[^A-Za-z 0-9,.?$@!&;]#i', '', $document); 
    別の区切り文字を使用します。
/[^A-Za-z 0-9,.?$@!&;#]/
    あなたはそれを逃れる
$document = preg_replace('#[^A-Za-z 0-9,.?$@!&;\#]#i', '', $document); 
    のようにエスケープすることで\#。これも見てください