<?php

function generateEANdigit($code)
{
  $weightflag = true;
  $sum = 0;
  for ($i = strlen($code) - 1; $i >= 0; $i--) {
    $sum += (int)$code[$i] * ($weightflag?3:1);
    $weightflag = !$weightflag;
  }
  return (10 - ($sum % 10)) % 10;
}

echo generateEANdigit('789100031550');