ayrıca php noparse, ama sayfa yükleme devam etmek nasıl

5 Cevap

Ben bir resim upload sayfası (tek sayfa) var. Sunulan zaman onlar kurallarını ihlal ederseniz her çıkarken, dosya boyutu ve türünü kontrol edin. Sorun tüm sayfa durak olduğunu.

Nasıl php kalan durdurmak (veya akım <? ?> patlak) işlenmekte ve sadece sayfanın kalanını yükleyebilirsiniz?

5 Cevap

Ekstra fonksiyonları ve etajer ile ad kirletme istemiyorsanız, bu bir do { ... } while (0); döngüsü için mükemmel bir durumdur.

do {
    // processing
    if (!check_file_size($image)) {
        echo 'The image is too big';
        break;
    }

    if (!check_file_type($image)) {
        echo 'The image is of the wrong type';
        break;
    }

    echo $image;
} while (0);

Do-while (0) döngü sizin koduna bir fonksiyon ve fonksiyon çağrısı yazmak zorunda kalmadan işleme çeşit koşullu çıkar alma duyulmamış kahraman. Kazançlar önemsiz olacak ise, bu da ekstra bir sembol oluşturmak zorunda PHP çözümleyici önlemek ve daha sonra az-sebepsiz için tekrar bakacaktır.

EDIT: aynı zamanda koşul çok büyük olsun devasa eğer-blok piramitleri girmesini engeller. Eğer sarın varsa bir blok ve bir bağımlı içinde sonraki her koşul ise blok, sonunda bu dev varsa, zor takip kapanış parantezi ile (kodunuzu biçimlendirmek varsayarak) girinti karışıklık iz zor olabilir ki onların açılış blokları; kullanarak do { ... } while (0); aynı mantıksal girinti düzeyinde her şeyi tutar.

Daha sonra da sadece return ondan, bir fonksiyon içine kodunuzu hareket etmelidir.

function processImage($img)
{
    if (imageIsTooLarge($img))
        return false;

    doOtherStuff();
    return true;
}

$ok = processImage($someImage);

Sen, sadelik uğruna, bir if() açıklamada kod sarın.

// continue parsing image if filesize not greater than maxsize
if ($filesize <= $max_size) {

    // contine parsing image if filetype is fine
    if (in_array($extension, array('jpg','jpeg','gif')) {

        // remainder of your PHP code goes in here for parsing image upload

    }
}

Tüm HTML PHP bu bloğun altında olmalıdır.

Çıkarken, kelimenin tam anlamıyla) (exit demek? Böylece kullanıcı için bir hata mesajı üretmek ve bu görüntüleme düşünürsek, sadece yüklenen dosyayı atabilirsiniz.

if(image is too large) {
    $err = "The image you uploaded is too large";
}

if(image wrong file type) {
    $err = "You have not uploaded a valid image file";
}

if(!isset($err) {
    proceesImage();
}

// echo out $err to user

Yeni goto işlevini kullanın:

<?php
//code is executed
goto a;
//code is not executed
echo "Not Executed";

a:
//code is executed
echo "Executed";
?>