Если Вы полностью, положительно , УВЕРЕНЫ , что Вы хотите стереть текущее содержание своего перьевого диска, то можно попробовать эти dd
команда, как описано ниже.
Первый, проверьте в один прошлый раз, когда /dev/sdb
относится к перьевому диску, который Вы хотите стереть. Как другой ответ указал, Вы хотите не сомневаться, что Вы стираете правильное устройство. (Я, вероятно, выполнил бы команду sudo fdisk -l
как дополнительную проверку.)
Эти dd
команда ниже должна записать нули в первого мебибайт перьевого диска, который сотрет любую таблицу разделов. Это должно полностью удалить любое разделение.
sudo dd if=/dev/zero bs=1M count=1 of=/dev/sdb
, Если Вы решаете, Вы хотите записать нули во все устройство, просто опустить count=1
параметр. Это займет больше времени, конечно. Сколько дольше зависит от размера перьевого диска, Вы стираетесь.
sudo dd if=/dev/zero bs=1M of=/dev/sdb
<час> после стирания таблицы разделов с нулями можно разделить диск. Я сделал бы это использование gparted
просто, потому что я знаком с тем инструментом и знаю, как использовать его.
Вот то, как я сделал бы это.
gparted
не уже доступно в Вашей системе, установите ее. Вы могли, например, использовать команду ниже. sudo apt-get update && sudo apt-get -y install gparted
gparted
, вводя Ваш пароль, когда его требуют. gparted
устройство. MS-DOS
таблица разделов стиля. gparted
в этой точке и использовании fdisk
для разделения перьевого диска.
Примечание:
, Если Вы хотели сделать, это в Windows I предлагает использовать эти DISKPART
команда в командном окне. Однажды в [1 116] выбирают корректный диск и затем выпускают команду CLEAN
.
(Можно выпустить команду HELP CLEAN
, в то время как в [1 119] форма больше информации о том, что делает команда.)
Как вы сказали, если использовать getimagesize в несуществующем файле, выдает предупреждение:
Этот код:
if ($data = getimagesize('not-existing.png')) {
echo "OK";
} else {
echo "NOT OK";
}
даст вам
Warning: getimagesize(not-existing.png) [function.getimagesize]:
failed to open stream: No such file or directory
Решение будет использовать оператор @ , чтобы замаскировать эту ошибку:
if ($data = @getimagesize('not-existing.png')) {
echo "OK";
} else {
echo "NOT OK";
}
Поскольку файл не существует, $ data по-прежнему будет ложным; но предупреждение не будет отображаться.
Другим решением было бы проверить, существует ли файл , перед использованием getimagesize; что-то вроде этого будет делать:
if (file_exists('not-existing.png') &&
($data = getimagesize('not-existing.png'))
) {
echo "OK";
} else {
echo "NOT OK";
}
Если файл не существует, getimagesize не вызывается - что означает отсутствие предупреждения
Тем не менее, это решение не то, что вы должны использовать для изображений, находящихся на другом сервере, и доступ через HTTP (если вы в данном случае), так как это будет означать два запроса к удаленному серверу.
Полагаю, для локальных изображений это было бы вполне нормально; Единственная проблема, которую я вижу, - это уведомление, генерируемое, когда ошибка чтения не маскируется.
Наконец:
display_errors
; -) Называйте меня грязным зомби-хакером, который отправится в ад, но я обычно обхожу эту проблему, перехватывая вывод предупреждения в выходной буфер, а затем проверяя буфер. Попробуйте следующее:
ob_start();
$data = getimagesize('not-existing.png');
$resize_warning = ob_get_clean();
if(!empty($resize_warning)) {
print "NOT OK";
# We could even print out the warning here, just as PHP would do
print "$resize_warning";
} else {
print "OK"
}
Как я уже сказал, это не способ получить уютное место на небесах программиста, но когда дело доходит до обработки дисфункциональных ошибок, мужчина должен делать то, что должен делать мужчина.