بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
لیست فایل های مشخص در یک پوشه به صورت جیسون حل شد + آموزش
سلام دوستان من پوشه عکسی دارم که تصاویر به صورت
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 پاسخ وجود دارد.
پاسخ به سوال
احمد
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 ");
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .