Я пошел бы с полями, которые заявил Landon:
Дискретная Математика, Линейная алгебра, Комбинаторика, Вероятность и Статистика, Теория графов
и добавляют математическую логику.
Это дало бы Вам власть на большинстве полей CS. Если Вы хотите войти в специальные поля, необходимо погрузиться в некоторые области особенно:
Computer graphics -> Linear Algebra
Gaming -> Linear Algebra, Physics
Computer Linguistics -> Statistics, Graph Theory
AI -> Statistics, Stochastics, Logic, Graph Theory
Из того, что я могу почерпнуть из документации , обработка предупреждений выдается этим методом сложно, потому что они не генерируются расширением libxml и, следовательно, не могут быть обработаны libxml_get_last_error ()
. Вы можете использовать оператор подавления ошибок и проверить возвращаемое значение на false
...
if (@$xdoc->load($url) === false)
// ...handle it
... или зарегистрировать обработчик ошибок, который выдает исключение при ошибке :
function exception_error_handler($errno, $errstr, $errfile, $errline ) {
throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
}
, а затем поймайте его.
Из php.net
Если в качестве имя файла или пустой файл, предупреждение будет сгенерировано. Эта предупреждение не генерируется libxml и не может быть обработано с помощью ошибки libxml функции обработки.
В вашей производственной среде вы не должны отображать ошибки для пользователя. Им не нужно их видеть, поэтому, принимая это во внимание, вы можете использовать ...
$xdoc = new DOMDocument();
if ( $xdoc->load($url) ) {
// valid
}
else {
// invalid
}