آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

لیست فایل های مشخص در یک پوشه به صورت جیسون حل شد  + آموزش

احمد  9 سال پیش  9 سال پیش
+1 0

سلام دوستان من پوشه عکسی دارم که تصاویر به صورت 

 01-001-00000001_l.png
01-001-00000001_m.png
01-001-00000001_s.png
01-001-00000002_l.png
01-001-00000002_m.png
01-001-00000002_s.png

داخلش قرار داره می خوام قسمت اول نام تصاویر یعنی تا قبل از _ را بفرستم به فایل php و لیست فایل ها را دریافت کنم به صورت جیسون فایل php من اینه:

 <?php
if ((!isset($_REQUEST['KCode'])) or ($_REQUEST['KCode'] == '')) {
    //   echo "Required Params(s) is missing; Param 1 Not Find";
    $response["success"] = 0;
    $response["message"] = "Required Params(s) is missing";
    echo $response["message"];
    exit;
} else {
    $KCode = $_REQUEST['KCode'];
    $dir2 = "K_Pic/";
    if (is_dir($dir2)) {
        if ($dh = opendir($dir2)) {
            while (($file = readdir($dh)) !== false) {
                if ($file == "." or $file == "..") {

                } else {
                 //   $files_array [] = $file; // Add the file to the array
                    $files_array[] = array('file' => $file); // Add the file to the array
                }
            }
        }
        $count = count($files_array);
        $temparray = array();
        for ($x = 0; $x < $count - 1; $x++) {
            if (strpos($files_array[$x], $KCode."_") !== false) {
                $temparray[] = $files_array[$x];
            }
        }
        if (count($temparray) > 0) {
            $return_array = array('name_array' => $temparray);
            //    echo json_encode($outputarray);
            echo json_encode($return_array);
        }
    }
}
?>

تا قبل از ـ باید دقیقا مثل عبارت ارسالی باشه اگه طریقه خوندن جیسونش را هم بگین ممنون میشم

+1 0
از تابع exclude برای تیکه تیکه کردن نام ها استفاده کنید یک آرایه به شما خروجی میده. مثلا اینجا بر اساس _ تابع رو صدا بزنید بع خونه ی صفر آرایه ی خروجی میشه همون چیزی که شما میخواین (9 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
احمد  9 سال پیش
+1 0

فایل php را به صورت زیر بنویسید:

 <?php
if ((!isset($_REQUEST['KCode'])) or ($_REQUEST['KCode'] == '')) {
    //   echo "Required Params(s) is missing; Param 1 Not Find";
    $response["success"] = 0;
    $response["message"] = "Required Params(s) is missing";
    echo $response["message"];
    exit;
} else {
    $KCode = $_REQUEST['KCode'];
    $dir2 = "K_Pic/";
    if (is_dir($dir2)) {
        if ($dh = opendir($dir2)) {
            while (($file = readdir($dh)) !== false) {
                if ($file == "." or $file == "..") {

                } else {
                    $files_array [] = $file; // Add the file to the array
                    //   $files_array[] = array('file' => $file); // Add the file to the array
                }
            }
        }
        $count = count($files_array);
        $temparray = array();
        for ($x = 0; $x < $count; $x++) {
            if (strpos($files_array[$x], $KCode) !== false) {
                $temparray[] = $files_array[$x];
            }
        }

        if (count($temparray) > 0) {
            $outputarray["success"] = 1;
            $outputarray["images"] = $temparray;
            echo json_encode($outputarray);
        } else {
            $outputarray["success"] = -1;
            $outputarray["message"] = "No Image found.";
            echo json_encode($outputarray);
        }
    }
}
?>

خروجی فایل بالا اگر عکسی وجود داشته باشه به صورت زیر هست:

{"success":1,"images":["01-001-00000001_l.png","01-001-00000001_s.png","01-001-00000001_m.png"]}

برای خوندنش در آندروید هم می تونید از کد زیر استفاده کنید:

 	JSONArray jsonArray = null;
					try {
						int success = json.getInt("success");
						if (success == 1) {

							JSONArray itemArray = json.getJSONArray("images");
							for (int i = 0; i < itemArray.length(); i++)

							{
								String name = "" + itemArray.get(i);
								Log.i(G.APP_LOG, "name is: " + name);
							}
						} else {
							Toast.makeText(G.context, "success -1",
									Toast.LENGTH_SHORT).show();
						}
					} catch (JSONException | IllegalStateException jException) {
						Log.i(G.APP_LOG, "error in get data 1 ");
						jException.printStackTrace();

					} catch (NullPointerException e) {
						Log.i(G.APP_LOG, "error in get data 2 ");
					}
0 0
این روش برای فایل های با حروف فارسی هم جواب میده ؟ (9 سال پیش)
+1 0
تست نکردم داداش میخوای تست کنم؟ (9 سال پیش)
+1 0
حروف فارسی را هم به صورت کد شده میاره {"success"["01-001-00000001_l.png","01-001-00000001_s.png","01-001-00000001_m.png","01-001-00000001_\u0633\u0644\u0627\u0645.png"]} (9 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .