رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
دریافت داده های serialize شده
#1
سلام
دوستان من آرایه خودم رو به صورت serilazie شده داخل یک فایل ریختم...
چطوری میتونم اسم و لینک کاربر و عکس رو در قالب html نمایش بدم؟ با foreach امکان پذیره؟
سرچ کردم چیزی متوجه نشدم
i: 8;a: 3: {
 i: 1036454;a: 3: {
s: 4: "name";s: 6: "Amir";s: 4: "link";s: 64: "member.php?111111";s: 5: "image";s: 82: "image.php?s=d97287b1f517f55c2145abfbeb4e1db0&u=1036454&dateline=1288196825";
}
i: 1169291;a: 3: {
s: 4: "name";s: 9: "ALI";s: 4: "link";s: 67: "member.php?2222222";s: 5: "image";s: 97: "image.php?s=d97287b1f517f55c2145abfbeb4e1db0&u=1169291&dateline=1488824926&type=thumb";
}
i: 1414814;a: 3: {
s: 4: "name";s: 11: "Hossein";s: 4: "link";s: 69: "member.php?33333";s: 5: "image";s: 97: "image.php?s=d97287b1f517f55c2145abfbeb4e1db0&u=1414814&dateline=1492708694&type=thumb";
}
}
پاسخ
تشکر شده توسط:
#2
باید ابتدا unserialize کنید و بعد مثل همون شئ اصلی باهاش کار کنین:
$original = unserialize($serialized);
پاسخ
تشکر شده توسط:
#3
استاد به این صورت درسته ؟
$original = unserialize($serialized);

$serialized = file_get_contents('test.json');
   $values = unserialize($serialized);
   $groups = [];
       foreach ($values as $key => $value) {
       $groups[$key] = [];
           foreach($value as $item) {
               $groups[$key][] = $item->name;
$groups[$key][] = $item->link;
$groups[$key][] = $item->image;
           }
       }
       foreach($groups['admin'] as $name) {
       echo $name ;
foreach($groups['admin'] as $link) {
       echo $link;
foreach($groups['admin'] as $image) {
       echo $image;
   }
   ?>
پاسخ
تشکر شده توسط:
#4
تست کنین. اگه داره کار میکنه یعنی درسته. میتونین از سایت http://www.phpfiddle.org هم برای تست آنلاین کمک بگیرین.
پاسخ
تشکر شده توسط:
#5
استاد این خطا رو میده
Parse error: syntax error, unexpected end of file in C:\xampp\htdocs\test\amir.php on line 20
پاسخ
تشکر شده توسط:
#6
اگه یکم مرتب بنویسین متوجه میشین که چرا خطا میگیرین. دو تا آکولاد بسته کم گذاشته بودین:
$original = unserialize($serialized);
 
$serialized = file_get_contents('test.json');
$values = unserialize($serialized);
$groups = [];
foreach ($values as $key => $value) {
    $groups[$key] = [];
    foreach($value as $item) {
        $groups[$key][] = $item->name;
        $groups[$key][] = $item->link;
        $groups[$key][] = $item->image;
    }
}
foreach($groups['admin'] as $name) {
    echo $name;
    foreach($groups['admin'] as $link) {
        echo $link;
        foreach($groups['admin'] as $image) {
            echo $image;
        }
    }
}
پاسخ
تشکر شده توسط:
#7
ترجیحاً یکبار این دستور رو اجرا کنید:
echo '<pre>';
var_dump($values);
echo '</pre>';

و ببینید چه خروجی براتون نمایش داده میشه. اینطوری بهتر میتونین تصمیم بگیرین که چطور پیمایش کنید.
پاسخ
تشکر شده توسط:
#8
استاد خروجی به این صورت...
حالا باید به تریتب اعداد مقادیر آرایه های 7 و 8 رو بگیرم؟
[7]=>
 array(5) {
   [1482240]=>
   array(3) {
     ["name"]=>
     string(8) "Ali"
     ["link"]=>
     string(66) "member.php?1111"
     ["image"]=>
     string(97) "image.php?s=d97287b1f517f55c2145abfbeb4e1db0&u=1482240&dateline=1491896119&type=thumb"
   }
   [1344026]=>
   array(3) {
     ["name"]=>
     string(7) "Amir"
     ["link"]=>
     string(65) "member.php?2222"
     ["image"]=>
     string(97) "image.php?s=d97287b1f517f55c2145abfbeb4e1db0&u=1344026&dateline=1465020832&type=thumb"
   }
  
 [8]=>
 array(3) {
   [1036454]=>
   array(3) {
     ["name"]=>
     string(6) "hossein"
     ["link"]=>
     string(64) "member.php?3333"
     ["image"]=>
     string(82) "image.php?s=d97287b1f517f55c2145abfbeb4e1db0&u=1036454&dateline=1288196825"
   }
   [1169291]=>
   array(3) {
     ["name"]=>
     string(9) "reza"
     ["link"]=>
     string(67) "member.php?4444"
     ["image"]=>
     string(97) "image.php?s=d97287b1f517f55c2145abfbeb4e1db0&u=1169291&dateline=1488824926&type=thumb"
   }
   [1414814]=>
   array(3) {
     ["name"]=>
     string(11) "hassan"
     ["link"]=>
     string(69) "member.php?55555"
     ["image"]=>
     string(97) "image.php?s=d97287b1f517f55c2145abfbeb4e1db0&u=1414814&dateline=1492708694&type=thumb"
   }
 }
پاسخ
تشکر شده توسط:
#9
foreach ($values as $items) {
    foreach ($items as $index => $item) {
        $groups[$index] = $item;
    }
}

یا اگه میخواین اندیس‌ها عددی بشه:
foreach ($values as $items) {
    foreach ($items as $index => $item) {
        $groups[$index] = array_values($item);
    }
}
پاسخ
تشکر شده توسط:
#10
استاد کد زیر رو تست کردم
<?php 
  $serialized = file_get_contents('test.json');
  $values = unserialize($serialized);
  foreach ($values as $items) {
   foreach ($items as $index => $item) {
       $groups[$index] = $item;
echo $groups;
   }
}
?>

تعداد زیادی این ارور را داد بهم
Notice: Array to string conversion in C:\xampp\htdocs\amir\amir.php on line 7
Array
Notice: Array to string conversion in C:\xampp\htdocs\amir\amir.php on line 7
Array
Notice: Array to string conversion in C:\xampp\htdocs\amir\amir.php on line 7
Array
.
.
.
.
.
.
پاسخ
تشکر شده توسط:
#11
محتوای test.json رو بگذارین تا بررسی کنم. خودتون با کمی دقت هم میتونین انجام بدین.
پاسخ
تشکر شده توسط:
#12
آرایه رو با print_r نمایش بدین نه echo !!!
$values = unserialize(file_get_contents('test.json'));
foreach ($values as $items) {
    foreach ($items as $index => $item) {
        $groups[$index] = array_values($item);
    }
}
echo '<pre>' . print_r($groups, true) . '</pre>';
پاسخ
تشکر شده توسط: amir76




کاربران در حال بازدید این موضوع: 1 مهمان