Проблемы с функцией array_search

113
17 января 2021, 22:20

Есть код php, который не пропускает формат jpeg, в чем проблема я уже понял, когда он находит формат jpeg в массиве, возвращает true и следом порядковый номер элемента, а номер элемента 0 и условие интерпретирует его как false. Как решить эту проблему?

if(isset($_POST['article-add'])) {
$imageinfo = getimagesize($_FILES['article-image']['tmp_name']);
$arr = array('image/jpeg','image/gif','image/png');
if (array_search($imageinfo['mime'],$arr)) {
    echo "Такой формат есть";
    echo array_search($imageinfo['mime'],$arr);
}
else {
    echo "Такого формата нет";
    echo array_search($imageinfo['mime'],$arr);
}
}
<form enctype="multipart/form-data"  action="index.php" method="post">
        <label for="article-image">Картинка статьи:</label><br>
        <input type="file" id="article-image" name="article-image">
        <button name="article-add" type="submit">Отправить</button>
</form>
Answer 1

Эта функция может возвращать как логическое значение FALSE, так и значение не типа boolean, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.
https://www.php.net/manual/ru/function.array-search.php

Из чего следует, что вам необходимо использовать оператор ===, а вашем случае его эквивалент НЕ равно: !==.

Ваш код:

...
if (array_search($imageinfo['mime'],$arr) !== false) {
...
READ ALSO
как открыть web приложение java через wildfly

как открыть web приложение java через wildfly

довольно стыдно это признавать, но не могу разобраться с wildflyЯ создал простенькое web приложение на java, чтобы проверить как работает wildfly, но он открывает...

66
в андроид приложении как сделать так чтобы google карта каждые 5 секунд обновилось

в андроид приложении как сделать так чтобы google карта каждые 5 секунд обновилось

у меня в приложении на Google карте маркеры видны в радиусе 100 метров как сделать так чтобы когда я передвигался карта автоматически обновлялась...

100
JVM и Java программы

JVM и Java программы

Программы, написанные на языке Java, исполняет JVM (Java Virtual Machine – виртуальная машина Java)JVM — это специальная программа, которая умеет исполнять...

96
Не найден javac

Не найден javac

Установила Java и JDKПроверяю функционирование через cmd, пишет, что javac не найден

92