تالار گفتمان nCIS.ir

نسخه‌ی کامل: دریافت داده های serialize شده
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام
دوستان من آرایه خودم رو به صورت 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";
}
}
باید ابتدا unserialize کنید و بعد مثل همون شئ اصلی باهاش کار کنین:
$original = unserialize($serialized);
استاد به این صورت درسته ؟
$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;
   }
   ?>
تست کنین. اگه داره کار میکنه یعنی درسته. میتونین از سایت http://www.phpfiddle.org هم برای تست آنلاین کمک بگیرین.
استاد این خطا رو میده
Parse error: syntax error, unexpected end of file in C:xampphtdocstestamir.php on line 20
اگه یکم مرتب بنویسین متوجه میشین که چرا خطا میگیرین. دو تا آکولاد بسته کم گذاشته بودین:
$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;
        }
    }
}
ترجیحاً یکبار این دستور رو اجرا کنید:
echo '<pre>';
var_dump($values);
echo '</pre>';

و ببینید چه خروجی براتون نمایش داده میشه. اینطوری بهتر میتونین تصمیم بگیرین که چطور پیمایش کنید.
استاد خروجی به این صورت...
حالا باید به تریتب اعداد مقادیر آرایه های 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"
   }
 }
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);
    }
}
استاد کد زیر رو تست کردم
<?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:xampphtdocsamiramir.php on line 7
Array
Notice: Array to string conversion in C:xampphtdocsamiramir.php on line 7
Array
Notice: Array to string conversion in C:xampphtdocsamiramir.php on line 7
Array
.
.
.
.
.
.
محتوای test.json رو بگذارین تا بررسی کنم. خودتون با کمی دقت هم میتونین انجام بدین.
آرایه رو با 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>';