(PHP 4 >= 4.0.6, PHP 5, PHP 7)
openssl_pkcs7_sign — Bir S/MIME iletiyi imzalar
$girdi_dosyası
   , string $çıktı_dosyası
   , mixed $imza_sertifikası
   , mixed $gizli_anahtar
   , array $başlıklar
   [, int $seçenekler = PKCS7_DETACHED
   [, string $ek_sertifikalar
  ]] )
   İleti girdi_dosyası'ndan okunur,
   imza_sertifikası ve bununla ilgili
   gizli_anahtar kullanılarak imzalanır, elde edilen
   imzalı ileti çıktı_dosyası'na kaydedilir.
  
girdi_dosyası
çıktı_dosyası
imza_sertifikası
gizli_anahtar
başlıklarİleti imzalandıktan sonra hazırlanan başlıkları içeren bir dizidir. Bu değiştirge ile ilgili ayrıntılı bilgi için openssl_pkcs7_encrypt()işlevine bakınız.
seçenekler
       Çıktıda değişiklik yapmak için kullanılır. PKCS7 sabitlerine bakınız.
       Belirtilmezse PKCS7_DETACHED öntanımlıdır.
      
ek_sertifikalarAlıcının imzayı doğrulamasına yardımcı olması için imzaya eklenecek sertifikaları içeren dosyanın yolu.
   Başarı durumunda TRUE, başarısızlık durumunda FALSE döner.
  
Örnek 1 - openssl_pkcs7_sign() örneği
<?php
// Alıcının, iletinin sizden geldiğinden emin olması için
// iletiyi imzalamak istediğinizi varsayalım.
$data = <<<EOD
Ağırlama giderleri için sana 10.000 TL harcama yetkisi veriyorum.
Başkan
EOD;
// İletiyi dosyaya kaydedelim
$fp = fopen("msg.txt", "w");
fwrite($fp, $data);
fclose($fp);
// şifreleyelim
if (openssl_pkcs7_sign("msg.txt", "signed.txt", "mycert.pem",
    array("file://mycert.pem", "mypassphrase"),
    array("To" => "joes@example.com",   // anahtarlı sözdizimi
          "From: HQ <ceo@example.com>", // indisli sözdizimi
          "Subject" => "Kişiye özel")
    )) {
    // ileti imzalandığına göre gönderebiliriz!
    exec(ini_get("sendmail_path") . " < signed.txt");
}
?>