* * @param string $path * @return string */ public function hash($path) { return md5_file($path); } /** * Write the contents of a file. * * @param string $path * @param string $contents * @param bool $lock * @return int */ public function put($path, $contents, $lock = false) { return file_put_contents($path, $contents, $lock ? LOCK_EX : 0); } /** * Prepend to a file. * * @param string $path * @param string $data * @return int */ public function prepend($path, $data) { if ($this->exists($path)) { return $this->put($path, $data.$this->get($path)); } return $this->put($path, $data); } /** * Append to a file.
"file_put_contents(/home/admin/domains/vietchem.com.vn/public_html/storage/framework/cache/data/0c/82/0c821c249000fa080aaf27a1a7d4ba7a92709850): failed to open stream: No such file or directory"
* * @param string $path * @return string */ public function hash($path) { return md5_file($path); } /** * Write the contents of a file. * * @param string $path * @param string $contents * @param bool $lock * @return int */ public function put($path, $contents, $lock = false) { return file_put_contents($path, $contents, $lock ? LOCK_EX : 0); } /** * Prepend to a file. * * @param string $path * @param string $data * @return int */ public function prepend($path, $data) { if ($this->exists($path)) { return $this->put($path, $data.$this->get($path)); } return $this->put($path, $data); } /** * Append to a file.
"/home/admin/domains/vietchem.com.vn/public_html/storage/framework/cache/data/0c/82/0c821c249000fa080aaf27a1a7d4ba7a92709850"
""" 9999999999O:42:"Illuminate\Pagination\LengthAwarePaginator":9:{s:8:"\x00*\x00total";i:158;s:11:"\x00*\x00lastPage";i:14;s:8:"\x00*\x00items";O:29:"Illuminate\Support\Collection":1:{s:8:"\x00*\x00items";a:12:{i:0;O:8:"stdClass":20:{s:2:"id";i:13568;s:11:"category_id";s:3:"183";s:8:"brand_id";i:84;s:3:"sku";s:5:"500-9";s:4:"name";s:41:"Dung dịch chuẩn pH 9.18, 500ml Horiba";s:4:"slug";s:36:"dung-dich-chuan-ph-9-18-500ml-horiba";s:5:"image";s:58:"https://vietchem.com.vn/uploads/vietchem/2019/10/500-9.jpg";s:6:"slides";s:0:"";s:11:"description";s:295:"Dung dịch chuẩn pH 9.18 (Code: 500-9) xuất xứ Horiba - Nhật, trạng thái lỏng, không màu, được sử dụng để hiệu chuẩn các dòng máy đo pH của Horiba,...Sử dụng trong các phòng thí nghiệm, viện nghiên cứu,...Quy cách đóng gói trong chai 500ml.";s:14:"specifications";s:2878:"<table style="width: 737px;">\r\n <tbody>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tên sản phẩm:</strong></span></td>\r\n <td style="width: 555px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Dung dịch chuẩn pH 9.18, 500ml Horiba</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Code:</strong></span></td>\r\n <td style="width: 555px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>500-9</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Hãng - Xuất xứ:</strong></span></td>\r\n <td style="width: 555px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Horiba - Nhật Bản</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Ứng dụng:</strong></span></td>\r\n <td style="width: 555px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Để hiệu chỉnh các máy đo pH.</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Sử dụng trong các phòng thí nghiệm, viện nghiên cứu, công nghiệp,...</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Thành phần:</strong></span></td>\r\n <td style="width: 555px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- <span lang="vi" tabindex="0">Natri Tetraborate Decahydrate <0,28% </span></span></p>\r\n <p><span lang="vi" style="font-family: arial, helvetica, sans-serif;" tabindex="0">- Axit clohydric 1M <0,04% </span></p>\r\n <p><span lang="vi" style="font-family: arial, helvetica, sans-serif;" tabindex="0">- Nước > 99%</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tính chất:</strong></span></td>\r\n <td style="width: 555px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Hình thể: lỏng, không màu</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- <span lang="vi" tabindex="0">pH: 9.18 ± 0.02 tại 25°C </span></span></p>\r\n <p><span lang="vi" style="font-family: arial, helvetica, sans-serif;" tabindex="0">- Điểm sôi: 100<sup>o</sup> C</span></p>\r\n <p><span lang="vi" style="font-family: arial, helvetica, sans-serif;" tabindex="0">- Phù hợp cho các dòng máy đo pH Laqua của Horiba</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Quy cách đóng gói:</strong></span></td>\r\n <td style="width: 555px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 500ml</span></td>\r\n </tr>\r\n </tbody>\r\n </table>";s:9:"price_low";i:269000;s:10:"price_high";i:424000;s:6:"detail";s:0:"";s:9:"catalogue";s:9:"500-9.pdf";s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2020-06-26 16:23:01";s:10:"updated_at";s:19:"2020-09-09 22:25:06";s:4:"unit";N;}i:1;O:8:"stdClass":20:{s:2:"id";i:13569;s:11:"category_id";s:3:"183";s:8:"brand_id";i:84;s:3:"sku";s:6:"500-10";s:4:"name";s:42:"Dung dịch chuẩn pH 10.01, 500ml Horiba";s:4:"slug";s:37:"dung-dich-chuan-ph-10-01-500ml-horiba";s:5:"image";s:59:"https://vietchem.com.vn/uploads/vietchem/2019/10/500-10.jpg";s:6:"slides";s:0:"";s:11:"description";s:296:"Dung dịch chuẩn pH 10.01, Code: 500-10 xuất xứ Horiba - Nhật, trạng thái lỏng, không màu, được sử dụng để hiệu chuẩn các dòng máy đo pH của Horiba,...Sử dụng trong các phòng thí nghiệm, viện nghiên cứu,...Quy cách đóng gói trong chai 500ml.";s:14:"specifications";s:2860:"<table style="width: 722px; height: 505px;">\r\n <tbody>\r\n <tr>\r\n <td style="width: 160px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tên sản phẩm:</strong></span></td>\r\n <td style="width: 548px;"><strong><span style="font-family: arial, helvetica, sans-serif;">Dung dịch chuẩn pH 10.01, 500ml Horiba</span></strong></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 160px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Code:</strong></span></td>\r\n <td style="width: 548px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>500-10</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 160px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Hãng - Xuất xứ:</strong></span></td>\r\n <td style="width: 548px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Horiba - Nhật Bản</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 160px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Ứng dụng:</strong></span></td>\r\n <td style="width: 548px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Để hiệu chỉnh các máy đo pH.</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Sử dụng trong các phòng thí nghiệm, viện nghiên cứu, công nghiệp, vv.</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 160px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Thành phần:</strong></span></td>\r\n <td style="width: 548px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- <span lang="vi" tabindex="0">Natri cacbonat <1% </span></span></p>\r\n <p><span lang="vi" style="font-family: arial, helvetica, sans-serif;" tabindex="0">- Natri bicarbonate <1% </span></p>\r\n <p><span lang="vi" style="font-family: arial, helvetica, sans-serif;" tabindex="0">- Nước > 98%</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 160px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tính chất:</strong></span></td>\r\n <td style="width: 548px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Hình thể: lỏng, không màu</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- <span lang="vi" tabindex="0">pH: 10.01 ±0.02</span></span></p>\r\n <p><span lang="vi" style="font-family: arial, helvetica, sans-serif;" tabindex="0">- Điểm sôi: 100<sup>o</sup>C</span></p>\r\n <p><span lang="vi" style="font-family: arial, helvetica, sans-serif;" tabindex="0">- Phù hợp cho các dòng máy đo pH Laqua của Horiba</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 160px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Quy cách đóng gói:</strong></span></td>\r\n <td style="width: 548px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 500ml</span></td>\r\n </tr>\r\n </tbody>\r\n </table>";s:9:"price_low";i:269000;s:10:"price_high";i:424000;s:6:"detail";s:0:"";s:9:"catalogue";s:10:"500-10.pdf";s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2020-06-26 16:23:01";s:10:"updated_at";s:19:"2020-09-09 22:25:06";s:4:"unit";N;}i:2;O:8:"stdClass":20:{s:2:"id";i:13570;s:11:"category_id";s:3:"183";s:8:"brand_id";i:84;s:3:"sku";s:6:"500-12";s:4:"name";s:42:"Dung dịch chuẩn pH 12.46, 500ml Horiba";s:4:"slug";s:37:"dung-dich-chuan-ph-12-46-500ml-horiba";s:5:"image";s:59:"https://vietchem.com.vn/uploads/vietchem/2019/10/500-12.jpg";s:6:"slides";s:0:"";s:11:"description";s:297:"Dung dịch chuẩn pH 12.46, code: 500-12, xuất xứ Horiba - Nhật, trạng thái lỏng, không màu, được sử dụng để hiệu chuẩn các dòng máy đo pH của Horiba,...Sử dụng trong các phòng thí nghiệm, viện nghiên cứu,...Quy cách đóng gói trong chai 500ml.";s:14:"specifications";s:3130:"<table style="width: 729px; height: 501px;">\r\n <tbody>\r\n <tr>\r\n <td style="width: 170px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tên sản phẩm:</strong></span></td>\r\n <td style="width: 547px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Dung dịch chuẩn pH 12.46, 500ml Horiba</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 170px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Code:</strong></span></td>\r\n <td style="width: 547px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>500-12</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 170px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Mã sản phẩm:</strong></span></td>\r\n <td style="width: 547px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>3999960034</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 170px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Hãng - Xuất xứ:</strong></span></td>\r\n <td style="width: 547px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Horiba - Nhật Bản</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 170px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Ứng dụng:</strong></span></td>\r\n <td style="width: 547px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Để hiệu chỉnh các máy đo pH.</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Sử dụng trong các phòng thí nghiệm, viện nghiên cứu, công nghiệp,...</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 170px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Thành phần:</strong></span></td>\r\n <td style="width: 547px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- <span lang="vi" tabindex="0">Kali clorua <0,5%</span></span></p>\r\n <p><span lang="vi" style="font-family: arial, helvetica, sans-serif;" tabindex="0">- Natri hydroxit <0,15% </span></p>\r\n <p><span lang="vi" style="font-family: arial, helvetica, sans-serif;" tabindex="0">- Nước > 99%</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 170px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tính chất:</strong></span></td>\r\n <td style="width: 547px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Hình thể: lỏng, không màu</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- <span lang="vi" tabindex="0">pH: 12.46 ±0.02</span></span></p>\r\n <p><span lang="vi" style="font-family: arial, helvetica, sans-serif;" tabindex="0">- Điểm sôi: 100<sup>o</sup> C</span></p>\r\n <p><span lang="vi" style="font-family: arial, helvetica, sans-serif;" tabindex="0">- Phù hợp cho các dòng máy đo pH Laqua của Horiba</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 170px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Quy cách đóng gói:</strong></span></td>\r\n <td style="width: 547px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 500ml</span></td>\r\n </tr>\r\n </tbody>\r\n </table>";s:9:"price_low";i:269000;s:10:"price_high";i:424000;s:6:"detail";s:0:"";s:9:"catalogue";s:10:"500-12.pdf";s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2020-06-26 16:23:01";s:10:"updated_at";s:19:"2020-09-09 22:25:06";s:4:"unit";N;}i:3;O:8:"stdClass":20:{s:2:"id";i:13571;s:11:"category_id";s:3:"183";s:8:"brand_id";i:84;s:3:"sku";s:6:"160-51";s:4:"name";s:29:"Bột chuẩn ORP 89mV Horiba";s:4:"slug";s:25:"bot-chuan-orp-89mv-horiba";s:5:"image";s:59:"https://vietchem.com.vn/uploads/vietchem/2019/10/160-51.jpg";s:6:"slides";s:0:"";s:11:"description";s:284:"Bột chuẩn ORP xuất xứ Horiba - Nhật, code 160-51, là hóa chất dạng bột được sử dụng để hiệu chuẩn chỉ tiêu ORP cho các dòng máy đo ORP của Horiba trong các phòng thí nghiệm, viện nghiên cứu,... Quy cách đóng gói: Hộp 10 gói.";s:14:"specifications";s:3225:"<table style="width: 735px;">\r\n <tbody>\r\n <tr>\r\n <td style="width: 188px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tên sản phẩm:</strong></span></td>\r\n <td style="width: 535px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Bột chuẩn ORP 89mV Horiba</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 188px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Code:</strong></span></td>\r\n <td style="width: 535px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>160-51</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 188px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Mã sản phẩm:</strong></span></td>\r\n <td style="width: 535px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>3200043618 (9003003100)</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 188px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Hãng - Xuất xứ:</strong></span></td>\r\n <td style="width: 535px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Horiba - Nhật Bản</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 188px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Ứng dụng:</strong></span></td>\r\n <td style="width: 535px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Để hiệu chuẩn chỉ tiêu ORP cho các dòng máy đo ORP của Horiba</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Sử dụng trong các phòng thí nghiệm, viện nghiên cứu,...</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 188px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Thành phần:</strong></span></td>\r\n <td style="width: 535px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Q<span lang="vi" tabindex="0">uinhydrone: 50%</span></span></p>\r\n <p><span lang="vi" style="font-family: arial, helvetica, sans-serif;" tabindex="0">- Kali dihydrogen phosphate: 25%</span></p>\r\n <p><span lang="vi" style="font-family: arial, helvetica, sans-serif;" tabindex="0">- Disodium hydro phosphate: 25%</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 188px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tính chất:</strong></span></td>\r\n <td style="width: 535px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Hình thể: bột, màu xanh lá</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Giá trị ORP (25 ° C): 89 mV (so với 3,33 mol/L KCl-AgCl)</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Sử dụng: Hòa tan 1 gói bột trong 250 mL nước tinh khiết, sau đo tiến hành hiệu chuẩn không quá 2 tiếng </span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- <span lang="vi" tabindex="0">Độ nóng chảy: 174 - 300 °C</span></span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 188px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Quy cách đóng gói:</strong></span></td>\r\n <td style="width: 535px;"><span style="font-family: arial, helvetica, sans-serif;">10 gói / hộp</span></td>\r\n </tr>\r\n </tbody>\r\n </table>";s:9:"price_low";i:11876000;s:10:"price_high";i:18752000;s:6:"detail";s:0:"";s:9:"catalogue";s:10:"160-51.pdf";s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2020-06-26 16:23:01";s:10:"updated_at";s:19:"2020-09-09 22:25:06";s:4:"unit";N;}i:4;O:8:"stdClass":20:{s:2:"id";i:11526;s:11:"category_id";s:3:"190";s:8:"brand_id";i:39;s:3:"sku";s:10:"1703430100";s:4:"name";s:110:"Praseodymium ICP standard traceable to SRM from NIST Pr(NO₃)₃ in HNO₃ 2-3% 1000 mg/l Pr Certipur® Merck";s:4:"slug";s:97:"praseodymium-icp-standard-traceable-to-srm-from-nist-pr-no-in-hno-2-3-1000-mg-l-pr-certipur-merck";s:5:"image";s:104:"https://vietchem.com.vn/uploads/vietchem/2019/09/certipur-icp-standards-certipur-icp-standards-all-3.jpg";s:6:"slides";s:0:"";s:11:"description";s:331:"Praseodymium ICP standard traceable to SRM from NIST Pr(NO₃)₃ in HNO₃ 2-3% 1000 mg/l Pr Certipur® code 1703430100. Hóa chất được sử dụng làm thuốc thử trong phân tích hóa học. Sử dụng rộng rãi trong các phòng thí nghiệm trường học, viện nghiên cứu,... Quy cách: Chai nhựa 100ml.";s:14:"specifications";s:2732:"<table style="width: 720px;">\r\n <tbody>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tên sản phẩm:</strong></span></td>\r\n <td style="width: 538px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Praseodymium ICP standard traceable to SRM from NIST Pr(NO₃)₃ in HNO₃ 2-3% 1000 mg/l Pr Certipur®</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Code:</strong></span></td>\r\n <td style="width: 538px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>1703430100</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Hãng - Xuất xứ:</strong></span></td>\r\n <td style="width: 538px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Merck - Đức</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Ứng dụng:</strong></span></td>\r\n <td style="width: 538px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Hóa chất được sử dụng làm thuốc thử trong phân tích hóa học.</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Dùng để hiệu chỉnh máy.</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Sử dụng rộng rãi trong các phòng thí nghiệm trường học, viện nghiên cứu,...</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tính chất:</strong></span></td>\r\n <td style="width: 538px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Hình thể: lỏng, màu nâu nhạt</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- <span lang="vi" tabindex="0">Mật độ: 1,013 g / cm3 (20 °C) </span></span></p>\r\n <p><span lang="vi" style="font-family: arial, helvetica, sans-serif;" tabindex="0">- Giá trị pH <1 (H₂O, 20 °C)</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Bảo quản:</strong></span></td>\r\n <td style="width: 538px;"><span style="font-family: arial, helvetica, sans-serif;">Bảo quản từ +15°C đến +25°C.</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Quy cách:</strong></span></td>\r\n <td style="width: 538px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 100ml</span></td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <p><span style="font-family: arial, helvetica, sans-serif;"> </span></p>";s:9:"price_low";i:6820000;s:10:"price_high";i:7869000;s:6:"detail";s:0:"";s:9:"catalogue";s:20:"170343_SDS_VN_VI.PDF";s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2019-10-19 17:13:11";s:10:"updated_at";s:19:"2020-09-09 22:24:42";s:4:"unit";N;}i:5;O:8:"stdClass":20:{s:2:"id";i:13574;s:11:"category_id";s:3:"183";s:8:"brand_id";i:84;s:3:"sku";s:6:"160-22";s:4:"name";s:30:"Bột chuẩn ORP 258mV Horiba";s:4:"slug";s:26:"bot-chuan-orp-258mv-horiba";s:5:"image";s:59:"https://vietchem.com.vn/uploads/vietchem/2019/10/160-22.jpg";s:6:"slides";s:0:"";s:11:"description";s:285:"Bột chuẩn ORP 258mV Horiba, code 160-22, là hóa chất dạng bột được pha vào nước tinh khiết thành dung dịch chuẩn có chỉ số ORP là 285mV chuyên dùng để calibrication một số dòng máy đo OPR của Horiba,...Quy cách đóng gói: Hộp 10 gói";s:14:"specifications";s:3160:"<table style="width: 737px;">\r\n <tbody>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tên sản phẩm:</strong></span></td>\r\n <td style="width: 555px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Bột chuẩn ORP 258mV Horiba</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Code:</strong></span></td>\r\n <td style="width: 555px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>160-22</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Mã sản phẩm:</strong></span></td>\r\n <td style="width: 555px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>3200043617(9003003000)</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Hãng - Xuất xứ:</strong></span></td>\r\n <td style="width: 555px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Horiba - Nhật Bản</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Ứng dụng:</strong></span></td>\r\n <td style="width: 555px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Calibrication một số dòng máy đo OPR của Horiba,...</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Sử dụng trong các phòng thí nghiệm, viện nghiên cứu,...</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Thành phần:</strong></span></td>\r\n <td style="width: 555px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Q<span lang="vi" tabindex="0">uinhydrone: 50%</span></span></p>\r\n <p><span lang="vi" style="font-family: arial, helvetica, sans-serif;" tabindex="0">- Kali hydro phthalate: 50%</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tính chất:</strong></span></td>\r\n <td style="width: 555px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Hình thể: bột, màu xanh lá</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Giá trị ORP (25 ° C): 258 mV (so với 3,33 mol/L KCl-AgCl)</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- <span lang="vi" tabindex="0">Độ nóng chảy: </span><span lang="vi" tabindex="0">174-300 °C (345,2 °F)</span></span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;"><span lang="vi" tabindex="0">- Sử dụng: Hòa tan 1 gói bột trong 250 mL nước tinh khiết, sau đo sử dụng trong thời gian không quá 2 tiếng.</span></span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Quy cách đóng gói:</strong></span></td>\r\n <td style="width: 555px;"><span style="font-family: arial, helvetica, sans-serif;">10 gói / hộp</span></td>\r\n </tr>\r\n </tbody>\r\n </table>";s:9:"price_low";i:11876000;s:10:"price_high";i:18752000;s:6:"detail";s:0:"";s:9:"catalogue";s:10:"160-22.pdf";s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2020-06-26 16:23:01";s:10:"updated_at";s:19:"2020-09-09 22:25:06";s:4:"unit";N;}i:6;O:8:"stdClass":20:{s:2:"id";i:16910;s:11:"category_id";s:3:"183";s:8:"brand_id";i:39;s:3:"sku";s:10:"1197780100";s:4:"name";s:38:"Calcium standard solution 100 ml Merck";s:4:"slug";s:38:"calcium-standard-solution-100-ml-merck";s:5:"image";s:91:"https://vietchem.com.vn/uploads/vietchem/2020/02/calcium-standard-solution-100-ml-merck.jpg";s:6:"slides";s:0:"";s:11:"description";s:338:"Calcium standard solution 100 ml Merck, Code: 1197780100, Quy cách đóng gói: chai nhựa 100ml, Hãng - Xuất xứ: Merck- Đức. Hóa chất dạng lỏng, không màu. Được dùng làm tiêu chuẩn đánh giá và xác định hàm lượng calcium trong dung dịch dùng trong phân tích vô cơ của phòng thí nghiệm.";s:14:"specifications";s:3435:"<table style="height: 133px; width: 724px;">\r\n <tbody>\r\n <tr>\r\n <td style="width: 188px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tên sản phẩm:</strong></span></td>\r\n <td style="width: 527px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Calcium standard solution 100 ml Merck </strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 188px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Code:</strong></span></td>\r\n <td style="width: 527px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>1197780100</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 188px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Hãng - Xuất xứ:</strong></span></td>\r\n <td style="width: 527px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Merck Đức</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 188px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Ứng dụng:</strong></span></td>\r\n <td style="width: 527px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">Canxi dung dịch tiêu chuẩn có thể truy nguyên theo SRM từ NIST Ca(NO₃)₂ trong HNO₃ 0,5 mol/l, 1000 mg/l Ca Certipur®. Được dùng làm tiêu chuẩn đánh giá và xác định hàm lượng calcium trong dung dịch dùng trong phân tích vô cơ của phòng thí nghiệm.</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 188px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tính chất:</strong></span></td>\r\n <td style="width: 527px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Tỉ trọng: 1.014 g/cm<sup>3</sup> (20 °C)</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Giá trị pH: 0,5 (H₂O, 20 °C)</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Dạng chất lỏng không màu.</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 188px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Lưu trữ:</strong></span></td>\r\n <td style="width: 527px;"><span style="font-family: arial, helvetica, sans-serif;">Bảo quản ở + 15 °C đến + 25 °C.</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 188px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Quy cách</strong></span></td>\r\n <td style="width: 527px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 100 ml</span></td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <p><span style="font-family: arial, helvetica, sans-serif;"><strong>Sản phẩm tham khảo:</strong></span></p>\r\n <table style="height: 34px; width: 724px;">\r\n <tbody>\r\n <tr>\r\n <td style="width: 190px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Code</strong></span></td>\r\n <td style="width: 525px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Quy cách</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 190px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>1197780100</strong></span></td>\r\n <td style="width: 525px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 100 ml</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 190px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>1197780500</strong></span></td>\r\n <td style="width: 525px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 500 ml</span></td>\r\n </tr>\r\n </tbody>\r\n </table>";s:9:"price_low";i:562000;s:10:"price_high";i:648000;s:6:"detail";s:0:"";s:9:"catalogue";s:42:"Calcium standard solution 100 ml Merck.PDF";s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2020-06-26 16:23:25";s:10:"updated_at";s:19:"2020-09-09 22:25:46";s:4:"unit";N;}i:7;O:8:"stdClass":20:{s:2:"id";i:2323;s:11:"category_id";s:3:"183";s:8:"brand_id";i:38;s:3:"sku";s:10:"HI96701-11";s:4:"name";s:62:"Cal Check chuẩn Clo dư, 0.00 và 1.00 mg/L HI96701-11 Hanna";s:4:"slug";s:57:"cal-check-chuan-clo-du-0-00-va-1-00-mg-l-hi96701-11-hanna";s:5:"image";s:109:"https://vietchem.com.vn/uploads/vietchem/2018/07/cal-check-chuan-clo-du-0-00-va-1-00-mgl-hi96701-11-hanna.jpg";s:6:"slides";s:0:"";s:11:"description";s:205:"HI96701-11 Cal Check chuẩn Chlorine là bộ cuvet dung dịch chuẩn chất lượng cao dùng để đo và hiệu chỉnh máy quang đo clo tự do cầm tay có thang đo từ 0.00-5.00 mg/L (ppm).";s:14:"specifications";s:2780:"<table style="width: 718px;">\r\n <tbody>\r\n <tr>\r\n <td style="width: 159px;"><span style="font-family: arial, helvetica, sans-serif; font-size: 11pt;"><strong>Tên sản phẩm:</strong></span></td>\r\n <td style="width: 547px;"><span style="font-family: arial, helvetica, sans-serif; font-size: 11pt;"><strong>Cal Check chuẩn Clo dư, 0.00 và 1.00 mg/L HI96701-11 Hanna</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 159px;"><span style="font-family: arial, helvetica, sans-serif; font-size: 11pt;"><strong>Code:</strong></span></td>\r\n <td style="width: 547px;"><span style="font-family: arial, helvetica, sans-serif; font-size: 11pt;"><strong>HI96701-11 </strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 159px;"><span style="font-family: arial, helvetica, sans-serif; font-size: 11pt;"><strong>Hãng - Xuất xứ:</strong></span></td>\r\n <td style="width: 547px;"><span style="font-family: arial, helvetica, sans-serif; font-size: 11pt;"><strong>Hanna Instruments</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 159px;"><span style="font-family: arial, helvetica, sans-serif; font-size: 11pt;"><strong>Ứng dụng:</strong></span></td>\r\n <td style="width: 547px;"><span style="font-family: arial, helvetica, sans-serif; font-size: 11pt;">Dùng để đo và hiệu chỉnh máy quang đo clo tự do cầm tay có thang đo từ 0.00-5.00 mg/L (ppm).</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 159px;"><span style="font-family: arial, helvetica, sans-serif; font-size: 11pt;"><strong>Mô tả sản phẩm: </strong></span></td>\r\n <td style="width: 547px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; font-size: 11pt;">- HI96700-11 bao gồm một cuvet "A" dùng để zero máy và một cuvet "B" để xác nhận hoặc hiệu chuẩn. </span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif; font-size: 11pt;">- Giá trị chuẩn của Clo dư trong Cuvet B: 1.00 +/- 0.05 mg/l tại 25°C. </span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif; font-size: 11pt;">- Được cung cấp kèm Giấy chứng nhận phân tích (COA) được in rõ số lô sản xuất, giá trị tham chiếu và ngày hết hạn.</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif; font-size: 11pt;">- Nội dung Giấy chứng nhận phân tích gồm: mã hàng, số lô sản xuất, ngày hết hạn, giá trị chuẩn tại 25°C. </span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif; font-size: 11pt;">- Hộp đựng đi kèm: chắn ánh sáng và tránh va đập.</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif; font-size: 11pt;">- Máy tương thích: HI96101, HI96701, HI96710, HI96711, HI96745. </span></p>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>";s:9:"price_low";i:3807000;s:10:"price_high";i:4499000;s:6:"detail";s:125:"<p><iframe src="//www.youtube.com/embed/Fe8hJeNpHQI" width="560" height="314" allowfullscreen="allowfullscreen"></iframe></p>";s:9:"catalogue";N;s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2018-08-06 20:58:22";s:10:"updated_at";s:19:"2020-09-09 22:24:18";s:4:"unit";N;}i:8;O:8:"stdClass":20:{s:2:"id";i:8215;s:11:"category_id";s:3:"190";s:8:"brand_id";i:39;s:3:"sku";s:10:"1703310100";s:4:"name";s:107:"Magnesium ICP standard traceable to SRM from NIST Mg(NO₃)₂ in HNO₃ 2-3% 1000 mg/l Mg CertiPUR® Merck";s:4:"slug";s:94:"magnesium-icp-standard-traceable-to-srm-from-nist-mg-no-in-hno-2-3-1000-mg-l-mg-certipur-merck";s:5:"image";s:75:"https://vietchem.com.vn/uploads/vietchem/2019/07/magnesium-icp-standard.jpg";s:6:"slides";s:0:"";s:11:"description";s:305:"Magnesium ICP standard traceable to SRM from NIST Mg(NO₃)₂ in HNO₃ 2-3% 1000 mg/l Mg CertiPUR®. Code: 1703310100. Quy cách chai nhựa 100ml. Tồn tại ở dạng lỏng, không màu, không mùi. Được sử dụng trong phòng thí nghiệm để chuẩn bị mẫu thử và phân tích.";s:14:"specifications";s:2733:"<table style="width: 709px;">\r\n <tbody>\r\n <tr style="height: 42px;">\r\n <td style="height: 42px; width: 151px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tên sản phẩm:</strong></span></td>\r\n <td style="height: 42px; width: 546px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Magnesium ICP standard traceable to SRM from NIST Mg(NO₃)₂ in </strong></span><span style="font-family: arial, helvetica, sans-serif;"><strong>HNO₃ 2-3% 1000 mg/l Mg CertiPUR®</strong></span></td>\r\n </tr>\r\n <tr style="height: 17px;">\r\n <td style="height: 17px; width: 151px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Code:</strong></span></td>\r\n <td style="height: 17px; width: 546px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>1703310100</strong></span></td>\r\n </tr>\r\n <tr style="height: 17px;">\r\n <td style="height: 17px; width: 151px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Hãng - xuất xứ:</strong></span></td>\r\n <td style="height: 17px; width: 546px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Merck - Đức</strong></span></td>\r\n </tr>\r\n <tr style="height: 17px;">\r\n <td style="height: 17px; width: 151px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Ứng dụng:</strong></span></td>\r\n <td style="height: 17px; width: 546px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Thuốc thử để phân tích</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- S<span lang="vi" tabindex="0">ử dụng làm tiêu chuẩn tham chiếu</span></span></p>\r\n </td>\r\n </tr>\r\n <tr style="height: 162px;">\r\n <td style="height: 162px; width: 151px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tính chất:</strong></span></td>\r\n <td style="height: 162px; width: 546px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Hình thể: thể lỏng, không màu, không mùi</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Độ pH: Khoảng 0,5 ở 20 °C</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Mật độ: Khoảng 1,016 g/cm3 ở 20 °C</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Tính tan trong nước: ở 20 °C hòa tan được</span></p>\r\n </td>\r\n </tr>\r\n <tr style="height: 17px;">\r\n <td style="height: 17px; width: 151px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Bảo quản:</strong></span></td>\r\n <td style="height: 17px; width: 546px;"><span style="font-family: arial, helvetica, sans-serif;">Từ +15°C đến +25°C.</span></td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <p> </p>\r\n <p><br /> </p>";s:9:"price_low";i:2414000;s:10:"price_high";i:2785000;s:6:"detail";s:0:"";s:9:"catalogue";s:20:"170331_SDS_VN_VI.PDF";s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2020-06-26 16:22:34";s:10:"updated_at";s:19:"2020-09-09 22:24:29";s:4:"unit";N;}i:9;O:8:"stdClass":20:{s:2:"id";i:10523;s:11:"category_id";s:3:"183";s:8:"brand_id";i:39;s:3:"sku";s:10:"1703070100";s:4:"name";s:108:"Boron ICP standard traceable to SRM from NIST, H₃BO₃ in H₂O 1000 mg/l B Certipur® 100 ml Merck Đức";s:4:"slug";s:95:"boron-icp-standard-traceable-to-srm-from-nist-h-bo-in-h-o-1000-mg-l-b-certipur-100-ml-merck-duc";s:5:"image";s:104:"https://vietchem.com.vn/uploads/vietchem/2019/09/certipur-icp-standards-certipur-icp-standards-all-1.jpg";s:6:"slides";s:0:"";s:11:"description";s:194:"Boron ICP standard của Merck với độ tinh khiết cao, với nồng độ 1000 mg/l là chất chuẩn kim loại Boron phù hợp để chạy máy ICP, AAS. Quy cách: Chai nhựa 100 ml";s:14:"specifications";s:2861:"<table style="height: 207px; width: 734px;">\r\n <tbody>\r\n <tr style="height: 38px;">\r\n <td style="width: 203px; height: 38px;"><strong><span style="font-family: arial, helvetica, sans-serif;">Tên sản phẩm: </span></strong></td>\r\n <td style="width: 521px; height: 38px;"><strong><span style="font-family: arial, helvetica, sans-serif;">Boron ICP standard traceable to SRM from NIST, H₃BO₃ in H₂O 1000 mg/l B Certipur® 100 ml Merck Đức</span></strong></td>\r\n </tr>\r\n <tr style="height: 17px;">\r\n <td style="width: 203px; height: 17px;"><strong><span style="font-family: arial, helvetica, sans-serif;">Code:</span></strong></td>\r\n <td style="width: 521px; height: 17px;"><strong><span style="font-family: arial, helvetica, sans-serif;">1703070100</span></strong></td>\r\n </tr>\r\n <tr style="height: 17px;">\r\n <td style="width: 203px; height: 17px;"><strong><span style="font-family: arial, helvetica, sans-serif;">Hãng-Xuất xứ:</span></strong></td>\r\n <td style="width: 521px; height: 17px;"><strong><span style="font-family: arial, helvetica, sans-serif;">Merck Đức</span></strong></td>\r\n </tr>\r\n <tr style="height: 54px;">\r\n <td style="width: 203px; height: 54px;"><strong><span style="font-family: arial, helvetica, sans-serif;">Ứng dụng:</span></strong></td>\r\n <td style="width: 521px; height: 54px;"><span style="font-family: arial, helvetica, sans-serif;">Xây dựng đường chuẩn để xác định Boron trên các thiết bị ICP, AAS... Sử dụng phổ biến trong các phòng thí nghiệm, viện nghiên cứu...</span></td>\r\n </tr>\r\n <tr style="height: 88px;">\r\n <td style="width: 203px; height: 88px;"><strong><span style="font-family: arial, helvetica, sans-serif;">Tính chất:</span></strong></td>\r\n <td style="width: 521px; height: 88px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Mật độ: 1.000 g/cm3 (20 °C)</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Trạng thái: Lỏng</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Màu sắc: Không màu, không mùi</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Giá trị pH: 4 (H₂O, 20 °C)</span></p>\r\n </td>\r\n </tr>\r\n <tr style="height: 17px;">\r\n <td style="width: 203px; height: 17px;"><strong><span style="font-family: arial, helvetica, sans-serif;">Bảo quản:</span></strong></td>\r\n <td style="width: 521px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;">Bảo quản từ +15°C đến +25°C.</span></td>\r\n </tr>\r\n <tr style="height: 17px;">\r\n <td style="width: 203px; height: 17px;"><strong><span style="font-family: arial, helvetica, sans-serif;">Quy cách: </span></strong></td>\r\n <td style="width: 521px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 100 ml</span></td>\r\n </tr>\r\n </tbody>\r\n </table>";s:9:"price_low";i:2650000;s:10:"price_high";i:3058000;s:6:"detail";s:0:"";s:9:"catalogue";s:22:"Boron ICP standard.PDF";s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2019-10-19 17:13:04";s:10:"updated_at";s:19:"2020-09-09 22:24:34";s:4:"unit";N;}i:10;O:8:"stdClass":20:{s:2:"id";i:2332;s:11:"category_id";s:3:"183";s:8:"brand_id";i:38;s:3:"sku";s:10:"HI96710-11";s:4:"name";s:56:"CAL Check™ Chuẩn pH, 0.0 và 7.0 pH HI96710-11 Hanna";s:4:"slug";s:49:"cal-check-chuan-ph-0-0-va-7-0-ph-hi96710-11-hanna";s:5:"image";s:102:"https://vietchem.com.vn/uploads/vietchem/2018/07/cal-check-chuan-ph-0-0-va-7-0-ph-hi96710-11-hanna.jpg";s:6:"slides";s:0:"";s:11:"description";s:145:"HI96710-11 là một bộ cuvet dung dịch chuẩn CAL CheckTM đơn giản dùng để kiểm tra và hiệu chuẩn Máy quang đo pH HI96710.";s:14:"specifications";s:2544:"<table style="width: 720px;">\r\n <tbody>\r\n <tr>\r\n <td style="width: 169px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tên sản phẩm:</strong></span></td>\r\n <td style="width: 566px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>CAL Check™ Chuẩn pH, 0.0 và 7.0 pH HI96710-11 Hanna</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 169px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Code: </strong></span></td>\r\n <td style="width: 566px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>HI96710-11</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 169px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Hãng - Xuất xứ:</strong></span></td>\r\n <td style="width: 566px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Hanna Instruments</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 169px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Ứng dụng:</strong></span></td>\r\n <td style="width: 566px;"><span style="font-family: arial, helvetica, sans-serif;">Dùng để kiểm tra và hiệu chuẩn Máy quang đo pH HI96710. </span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 169px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Mô tả sản phẩm:</strong></span></td>\r\n <td style="width: 566px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">-Đóng gói: 2 cuvet chứa dung dịch chuẩn: 0.0 và 7.0 pH</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">-Số lượng: 1 bộ</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">-HI96710-11 bao gồm một cuvet "A" dùng để zero máy và một cuvet "B" để xác nhận hoặc hiệu chuẩn. </span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">-Giá trị chuẩn từ cuvet B 7.0 ± 0.1 mg/L tại 25°C. </span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">-Được cung cấp kèm Giấy chứng nhận phân tích (COA) được in rõ số lô sản xuất, giá trị tham chiếu và ngày hết hạn.</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">-Nội dung Giấy chứng nhận phân tích gồm: mã hàng, số lô sản xuất, ngày hết hạn, giá trị chuẩn tại 25°C. </span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">-Hộp đựng đi kèm: chắn ánh sáng và tránh va đập. </span></p>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>";s:9:"price_low";i:3807000;s:10:"price_high";i:4499000;s:6:"detail";s:125:"<p><iframe src="//www.youtube.com/embed/Fe8hJeNpHQI" width="560" height="314" allowfullscreen="allowfullscreen"></iframe></p>";s:9:"catalogue";N;s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2018-08-07 22:54:43";s:10:"updated_at";s:19:"2020-09-09 22:24:18";s:4:"unit";N;}i:11;O:8:"stdClass":20:{s:2:"id";i:8222;s:11:"category_id";s:3:"183";s:8:"brand_id";i:39;s:3:"sku";s:10:"5004200001";s:4:"name";s:87:"Refractive index standard traceable to SRM from NIST and PTB 20° Brix Certipur® Merck";s:4:"slug";s:83:"refractive-index-standard-traceable-to-srm-from-nist-and-ptb-20-brix-certipur-merck";s:5:"image";s:84:"https://vietchem.com.vn/uploads/vietchem/2019/07/certipur-brix-certipur-brix-all.jpg";s:6:"slides";s:0:"";s:11:"description";s:266:"Refractive index standard traceable to SRM from NIST and PTB 20° Brix Certipur®. Code. 5004200001. Là hóa chất tinh khiết được sử dụng nhiều trong phòng thí nghiệm. Dùng trong phân tích và kiểm tra độ chính xác của khúc xạ kế.";s:14:"specifications";s:2003:"<table style="width: 720px;">\r\n <tbody>\r\n <tr>\r\n <td style="width: 130px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tên sản phẩm:</strong></span></td>\r\n <td style="width: 576px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Refractive index standard traceable to SRM from NIST and PTB 20° Brix Certipur®</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 130px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Code:</strong></span></td>\r\n <td style="width: 576px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>5004200001</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 130px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Hãng- xuất xứ:</strong></span></td>\r\n <td style="width: 576px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Merck- Đức</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 130px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Quy cách:</strong></span></td>\r\n <td style="width: 576px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>5 x 8ml/ lọ</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 130px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Ứng dụng:</strong></span></td>\r\n <td style="width: 576px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Sử dụng các tiêu chuẩn chỉ số khúc xạ để kiểm tra độ chính xác của khúc xạ kế trong việc đánh giá hàm lượng đường</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Chuẩn bị mẫu và phân tích</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 130px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Bảo quản:</strong></span></td>\r\n <td style="width: 576px;"><span style="font-family: arial, helvetica, sans-serif;">Từ +15°C đến +25°C.</span></td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <p> </p>\r\n <p><br /> </p>";s:9:"price_low";i:3803000;s:10:"price_high";i:4388000;s:6:"detail";s:0:"";s:9:"catalogue";s:24:"500420_SUB_SDS_VN_VI.PDF";s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2020-06-26 16:22:34";s:10:"updated_at";s:19:"2020-09-09 22:24:29";s:4:"unit";N;}}}s:10:"\x00*\x00perPage";i:12;s:14:"\x00*\x00currentPage";i:1;s:7:"\x00*\x00path";s:34:"https://vietchem.com.vn/chat-chuan";s:8:"\x00*\x00query";a:0:{}s:11:"\x00*\x00fragment";N;s:11:"\x00*\x00pageName";s:4:"page";} """
2
*/ public function get($key) { return $this->getPayload($key)['data'] ?? null; } /** * Store an item in the cache for a given number of minutes. * * @param string $key * @param mixed $value * @param float|int $minutes * @return void */ public function put($key, $value, $minutes) { $this->ensureCacheDirectoryExists($path = $this->path($key)); $this->files->put( $path, $this->expiration($minutes).serialize($value), true ); } /** * Create the file cache directory if necessary. * * @param string $path * @return void */ protected function ensureCacheDirectoryExists($path) { if (! $this->files->exists(dirname($path))) { $this->files->makeDirectory(dirname($path), 0777, true, true); } } /** * Increment the value of an item in the cache. * * @param string $key
"/home/admin/domains/vietchem.com.vn/public_html/storage/framework/cache/data/0c/82/0c821c249000fa080aaf27a1a7d4ba7a92709850"
""" 9999999999O:42:"Illuminate\Pagination\LengthAwarePaginator":9:{s:8:"\x00*\x00total";i:158;s:11:"\x00*\x00lastPage";i:14;s:8:"\x00*\x00items";O:29:"Illuminate\Support\Collection":1:{s:8:"\x00*\x00items";a:12:{i:0;O:8:"stdClass":20:{s:2:"id";i:13568;s:11:"category_id";s:3:"183";s:8:"brand_id";i:84;s:3:"sku";s:5:"500-9";s:4:"name";s:41:"Dung dịch chuẩn pH 9.18, 500ml Horiba";s:4:"slug";s:36:"dung-dich-chuan-ph-9-18-500ml-horiba";s:5:"image";s:58:"https://vietchem.com.vn/uploads/vietchem/2019/10/500-9.jpg";s:6:"slides";s:0:"";s:11:"description";s:295:"Dung dịch chuẩn pH 9.18 (Code: 500-9) xuất xứ Horiba - Nhật, trạng thái lỏng, không màu, được sử dụng để hiệu chuẩn các dòng máy đo pH của Horiba,...Sử dụng trong các phòng thí nghiệm, viện nghiên cứu,...Quy cách đóng gói trong chai 500ml.";s:14:"specifications";s:2878:"<table style="width: 737px;">\r\n <tbody>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tên sản phẩm:</strong></span></td>\r\n <td style="width: 555px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Dung dịch chuẩn pH 9.18, 500ml Horiba</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Code:</strong></span></td>\r\n <td style="width: 555px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>500-9</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Hãng - Xuất xứ:</strong></span></td>\r\n <td style="width: 555px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Horiba - Nhật Bản</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Ứng dụng:</strong></span></td>\r\n <td style="width: 555px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Để hiệu chỉnh các máy đo pH.</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Sử dụng trong các phòng thí nghiệm, viện nghiên cứu, công nghiệp,...</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Thành phần:</strong></span></td>\r\n <td style="width: 555px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- <span lang="vi" tabindex="0">Natri Tetraborate Decahydrate <0,28% </span></span></p>\r\n <p><span lang="vi" style="font-family: arial, helvetica, sans-serif;" tabindex="0">- Axit clohydric 1M <0,04% </span></p>\r\n <p><span lang="vi" style="font-family: arial, helvetica, sans-serif;" tabindex="0">- Nước > 99%</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tính chất:</strong></span></td>\r\n <td style="width: 555px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Hình thể: lỏng, không màu</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- <span lang="vi" tabindex="0">pH: 9.18 ± 0.02 tại 25°C </span></span></p>\r\n <p><span lang="vi" style="font-family: arial, helvetica, sans-serif;" tabindex="0">- Điểm sôi: 100<sup>o</sup> C</span></p>\r\n <p><span lang="vi" style="font-family: arial, helvetica, sans-serif;" tabindex="0">- Phù hợp cho các dòng máy đo pH Laqua của Horiba</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Quy cách đóng gói:</strong></span></td>\r\n <td style="width: 555px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 500ml</span></td>\r\n </tr>\r\n </tbody>\r\n </table>";s:9:"price_low";i:269000;s:10:"price_high";i:424000;s:6:"detail";s:0:"";s:9:"catalogue";s:9:"500-9.pdf";s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2020-06-26 16:23:01";s:10:"updated_at";s:19:"2020-09-09 22:25:06";s:4:"unit";N;}i:1;O:8:"stdClass":20:{s:2:"id";i:13569;s:11:"category_id";s:3:"183";s:8:"brand_id";i:84;s:3:"sku";s:6:"500-10";s:4:"name";s:42:"Dung dịch chuẩn pH 10.01, 500ml Horiba";s:4:"slug";s:37:"dung-dich-chuan-ph-10-01-500ml-horiba";s:5:"image";s:59:"https://vietchem.com.vn/uploads/vietchem/2019/10/500-10.jpg";s:6:"slides";s:0:"";s:11:"description";s:296:"Dung dịch chuẩn pH 10.01, Code: 500-10 xuất xứ Horiba - Nhật, trạng thái lỏng, không màu, được sử dụng để hiệu chuẩn các dòng máy đo pH của Horiba,...Sử dụng trong các phòng thí nghiệm, viện nghiên cứu,...Quy cách đóng gói trong chai 500ml.";s:14:"specifications";s:2860:"<table style="width: 722px; height: 505px;">\r\n <tbody>\r\n <tr>\r\n <td style="width: 160px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tên sản phẩm:</strong></span></td>\r\n <td style="width: 548px;"><strong><span style="font-family: arial, helvetica, sans-serif;">Dung dịch chuẩn pH 10.01, 500ml Horiba</span></strong></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 160px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Code:</strong></span></td>\r\n <td style="width: 548px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>500-10</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 160px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Hãng - Xuất xứ:</strong></span></td>\r\n <td style="width: 548px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Horiba - Nhật Bản</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 160px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Ứng dụng:</strong></span></td>\r\n <td style="width: 548px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Để hiệu chỉnh các máy đo pH.</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Sử dụng trong các phòng thí nghiệm, viện nghiên cứu, công nghiệp, vv.</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 160px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Thành phần:</strong></span></td>\r\n <td style="width: 548px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- <span lang="vi" tabindex="0">Natri cacbonat <1% </span></span></p>\r\n <p><span lang="vi" style="font-family: arial, helvetica, sans-serif;" tabindex="0">- Natri bicarbonate <1% </span></p>\r\n <p><span lang="vi" style="font-family: arial, helvetica, sans-serif;" tabindex="0">- Nước > 98%</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 160px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tính chất:</strong></span></td>\r\n <td style="width: 548px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Hình thể: lỏng, không màu</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- <span lang="vi" tabindex="0">pH: 10.01 ±0.02</span></span></p>\r\n <p><span lang="vi" style="font-family: arial, helvetica, sans-serif;" tabindex="0">- Điểm sôi: 100<sup>o</sup>C</span></p>\r\n <p><span lang="vi" style="font-family: arial, helvetica, sans-serif;" tabindex="0">- Phù hợp cho các dòng máy đo pH Laqua của Horiba</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 160px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Quy cách đóng gói:</strong></span></td>\r\n <td style="width: 548px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 500ml</span></td>\r\n </tr>\r\n </tbody>\r\n </table>";s:9:"price_low";i:269000;s:10:"price_high";i:424000;s:6:"detail";s:0:"";s:9:"catalogue";s:10:"500-10.pdf";s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2020-06-26 16:23:01";s:10:"updated_at";s:19:"2020-09-09 22:25:06";s:4:"unit";N;}i:2;O:8:"stdClass":20:{s:2:"id";i:13570;s:11:"category_id";s:3:"183";s:8:"brand_id";i:84;s:3:"sku";s:6:"500-12";s:4:"name";s:42:"Dung dịch chuẩn pH 12.46, 500ml Horiba";s:4:"slug";s:37:"dung-dich-chuan-ph-12-46-500ml-horiba";s:5:"image";s:59:"https://vietchem.com.vn/uploads/vietchem/2019/10/500-12.jpg";s:6:"slides";s:0:"";s:11:"description";s:297:"Dung dịch chuẩn pH 12.46, code: 500-12, xuất xứ Horiba - Nhật, trạng thái lỏng, không màu, được sử dụng để hiệu chuẩn các dòng máy đo pH của Horiba,...Sử dụng trong các phòng thí nghiệm, viện nghiên cứu,...Quy cách đóng gói trong chai 500ml.";s:14:"specifications";s:3130:"<table style="width: 729px; height: 501px;">\r\n <tbody>\r\n <tr>\r\n <td style="width: 170px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tên sản phẩm:</strong></span></td>\r\n <td style="width: 547px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Dung dịch chuẩn pH 12.46, 500ml Horiba</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 170px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Code:</strong></span></td>\r\n <td style="width: 547px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>500-12</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 170px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Mã sản phẩm:</strong></span></td>\r\n <td style="width: 547px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>3999960034</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 170px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Hãng - Xuất xứ:</strong></span></td>\r\n <td style="width: 547px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Horiba - Nhật Bản</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 170px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Ứng dụng:</strong></span></td>\r\n <td style="width: 547px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Để hiệu chỉnh các máy đo pH.</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Sử dụng trong các phòng thí nghiệm, viện nghiên cứu, công nghiệp,...</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 170px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Thành phần:</strong></span></td>\r\n <td style="width: 547px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- <span lang="vi" tabindex="0">Kali clorua <0,5%</span></span></p>\r\n <p><span lang="vi" style="font-family: arial, helvetica, sans-serif;" tabindex="0">- Natri hydroxit <0,15% </span></p>\r\n <p><span lang="vi" style="font-family: arial, helvetica, sans-serif;" tabindex="0">- Nước > 99%</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 170px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tính chất:</strong></span></td>\r\n <td style="width: 547px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Hình thể: lỏng, không màu</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- <span lang="vi" tabindex="0">pH: 12.46 ±0.02</span></span></p>\r\n <p><span lang="vi" style="font-family: arial, helvetica, sans-serif;" tabindex="0">- Điểm sôi: 100<sup>o</sup> C</span></p>\r\n <p><span lang="vi" style="font-family: arial, helvetica, sans-serif;" tabindex="0">- Phù hợp cho các dòng máy đo pH Laqua của Horiba</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 170px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Quy cách đóng gói:</strong></span></td>\r\n <td style="width: 547px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 500ml</span></td>\r\n </tr>\r\n </tbody>\r\n </table>";s:9:"price_low";i:269000;s:10:"price_high";i:424000;s:6:"detail";s:0:"";s:9:"catalogue";s:10:"500-12.pdf";s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2020-06-26 16:23:01";s:10:"updated_at";s:19:"2020-09-09 22:25:06";s:4:"unit";N;}i:3;O:8:"stdClass":20:{s:2:"id";i:13571;s:11:"category_id";s:3:"183";s:8:"brand_id";i:84;s:3:"sku";s:6:"160-51";s:4:"name";s:29:"Bột chuẩn ORP 89mV Horiba";s:4:"slug";s:25:"bot-chuan-orp-89mv-horiba";s:5:"image";s:59:"https://vietchem.com.vn/uploads/vietchem/2019/10/160-51.jpg";s:6:"slides";s:0:"";s:11:"description";s:284:"Bột chuẩn ORP xuất xứ Horiba - Nhật, code 160-51, là hóa chất dạng bột được sử dụng để hiệu chuẩn chỉ tiêu ORP cho các dòng máy đo ORP của Horiba trong các phòng thí nghiệm, viện nghiên cứu,... Quy cách đóng gói: Hộp 10 gói.";s:14:"specifications";s:3225:"<table style="width: 735px;">\r\n <tbody>\r\n <tr>\r\n <td style="width: 188px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tên sản phẩm:</strong></span></td>\r\n <td style="width: 535px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Bột chuẩn ORP 89mV Horiba</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 188px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Code:</strong></span></td>\r\n <td style="width: 535px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>160-51</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 188px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Mã sản phẩm:</strong></span></td>\r\n <td style="width: 535px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>3200043618 (9003003100)</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 188px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Hãng - Xuất xứ:</strong></span></td>\r\n <td style="width: 535px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Horiba - Nhật Bản</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 188px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Ứng dụng:</strong></span></td>\r\n <td style="width: 535px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Để hiệu chuẩn chỉ tiêu ORP cho các dòng máy đo ORP của Horiba</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Sử dụng trong các phòng thí nghiệm, viện nghiên cứu,...</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 188px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Thành phần:</strong></span></td>\r\n <td style="width: 535px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Q<span lang="vi" tabindex="0">uinhydrone: 50%</span></span></p>\r\n <p><span lang="vi" style="font-family: arial, helvetica, sans-serif;" tabindex="0">- Kali dihydrogen phosphate: 25%</span></p>\r\n <p><span lang="vi" style="font-family: arial, helvetica, sans-serif;" tabindex="0">- Disodium hydro phosphate: 25%</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 188px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tính chất:</strong></span></td>\r\n <td style="width: 535px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Hình thể: bột, màu xanh lá</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Giá trị ORP (25 ° C): 89 mV (so với 3,33 mol/L KCl-AgCl)</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Sử dụng: Hòa tan 1 gói bột trong 250 mL nước tinh khiết, sau đo tiến hành hiệu chuẩn không quá 2 tiếng </span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- <span lang="vi" tabindex="0">Độ nóng chảy: 174 - 300 °C</span></span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 188px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Quy cách đóng gói:</strong></span></td>\r\n <td style="width: 535px;"><span style="font-family: arial, helvetica, sans-serif;">10 gói / hộp</span></td>\r\n </tr>\r\n </tbody>\r\n </table>";s:9:"price_low";i:11876000;s:10:"price_high";i:18752000;s:6:"detail";s:0:"";s:9:"catalogue";s:10:"160-51.pdf";s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2020-06-26 16:23:01";s:10:"updated_at";s:19:"2020-09-09 22:25:06";s:4:"unit";N;}i:4;O:8:"stdClass":20:{s:2:"id";i:11526;s:11:"category_id";s:3:"190";s:8:"brand_id";i:39;s:3:"sku";s:10:"1703430100";s:4:"name";s:110:"Praseodymium ICP standard traceable to SRM from NIST Pr(NO₃)₃ in HNO₃ 2-3% 1000 mg/l Pr Certipur® Merck";s:4:"slug";s:97:"praseodymium-icp-standard-traceable-to-srm-from-nist-pr-no-in-hno-2-3-1000-mg-l-pr-certipur-merck";s:5:"image";s:104:"https://vietchem.com.vn/uploads/vietchem/2019/09/certipur-icp-standards-certipur-icp-standards-all-3.jpg";s:6:"slides";s:0:"";s:11:"description";s:331:"Praseodymium ICP standard traceable to SRM from NIST Pr(NO₃)₃ in HNO₃ 2-3% 1000 mg/l Pr Certipur® code 1703430100. Hóa chất được sử dụng làm thuốc thử trong phân tích hóa học. Sử dụng rộng rãi trong các phòng thí nghiệm trường học, viện nghiên cứu,... Quy cách: Chai nhựa 100ml.";s:14:"specifications";s:2732:"<table style="width: 720px;">\r\n <tbody>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tên sản phẩm:</strong></span></td>\r\n <td style="width: 538px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Praseodymium ICP standard traceable to SRM from NIST Pr(NO₃)₃ in HNO₃ 2-3% 1000 mg/l Pr Certipur®</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Code:</strong></span></td>\r\n <td style="width: 538px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>1703430100</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Hãng - Xuất xứ:</strong></span></td>\r\n <td style="width: 538px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Merck - Đức</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Ứng dụng:</strong></span></td>\r\n <td style="width: 538px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Hóa chất được sử dụng làm thuốc thử trong phân tích hóa học.</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Dùng để hiệu chỉnh máy.</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Sử dụng rộng rãi trong các phòng thí nghiệm trường học, viện nghiên cứu,...</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tính chất:</strong></span></td>\r\n <td style="width: 538px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Hình thể: lỏng, màu nâu nhạt</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- <span lang="vi" tabindex="0">Mật độ: 1,013 g / cm3 (20 °C) </span></span></p>\r\n <p><span lang="vi" style="font-family: arial, helvetica, sans-serif;" tabindex="0">- Giá trị pH <1 (H₂O, 20 °C)</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Bảo quản:</strong></span></td>\r\n <td style="width: 538px;"><span style="font-family: arial, helvetica, sans-serif;">Bảo quản từ +15°C đến +25°C.</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Quy cách:</strong></span></td>\r\n <td style="width: 538px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 100ml</span></td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <p><span style="font-family: arial, helvetica, sans-serif;"> </span></p>";s:9:"price_low";i:6820000;s:10:"price_high";i:7869000;s:6:"detail";s:0:"";s:9:"catalogue";s:20:"170343_SDS_VN_VI.PDF";s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2019-10-19 17:13:11";s:10:"updated_at";s:19:"2020-09-09 22:24:42";s:4:"unit";N;}i:5;O:8:"stdClass":20:{s:2:"id";i:13574;s:11:"category_id";s:3:"183";s:8:"brand_id";i:84;s:3:"sku";s:6:"160-22";s:4:"name";s:30:"Bột chuẩn ORP 258mV Horiba";s:4:"slug";s:26:"bot-chuan-orp-258mv-horiba";s:5:"image";s:59:"https://vietchem.com.vn/uploads/vietchem/2019/10/160-22.jpg";s:6:"slides";s:0:"";s:11:"description";s:285:"Bột chuẩn ORP 258mV Horiba, code 160-22, là hóa chất dạng bột được pha vào nước tinh khiết thành dung dịch chuẩn có chỉ số ORP là 285mV chuyên dùng để calibrication một số dòng máy đo OPR của Horiba,...Quy cách đóng gói: Hộp 10 gói";s:14:"specifications";s:3160:"<table style="width: 737px;">\r\n <tbody>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tên sản phẩm:</strong></span></td>\r\n <td style="width: 555px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Bột chuẩn ORP 258mV Horiba</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Code:</strong></span></td>\r\n <td style="width: 555px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>160-22</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Mã sản phẩm:</strong></span></td>\r\n <td style="width: 555px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>3200043617(9003003000)</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Hãng - Xuất xứ:</strong></span></td>\r\n <td style="width: 555px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Horiba - Nhật Bản</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Ứng dụng:</strong></span></td>\r\n <td style="width: 555px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Calibrication một số dòng máy đo OPR của Horiba,...</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Sử dụng trong các phòng thí nghiệm, viện nghiên cứu,...</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Thành phần:</strong></span></td>\r\n <td style="width: 555px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Q<span lang="vi" tabindex="0">uinhydrone: 50%</span></span></p>\r\n <p><span lang="vi" style="font-family: arial, helvetica, sans-serif;" tabindex="0">- Kali hydro phthalate: 50%</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tính chất:</strong></span></td>\r\n <td style="width: 555px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Hình thể: bột, màu xanh lá</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Giá trị ORP (25 ° C): 258 mV (so với 3,33 mol/L KCl-AgCl)</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- <span lang="vi" tabindex="0">Độ nóng chảy: </span><span lang="vi" tabindex="0">174-300 °C (345,2 °F)</span></span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;"><span lang="vi" tabindex="0">- Sử dụng: Hòa tan 1 gói bột trong 250 mL nước tinh khiết, sau đo sử dụng trong thời gian không quá 2 tiếng.</span></span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 168px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Quy cách đóng gói:</strong></span></td>\r\n <td style="width: 555px;"><span style="font-family: arial, helvetica, sans-serif;">10 gói / hộp</span></td>\r\n </tr>\r\n </tbody>\r\n </table>";s:9:"price_low";i:11876000;s:10:"price_high";i:18752000;s:6:"detail";s:0:"";s:9:"catalogue";s:10:"160-22.pdf";s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2020-06-26 16:23:01";s:10:"updated_at";s:19:"2020-09-09 22:25:06";s:4:"unit";N;}i:6;O:8:"stdClass":20:{s:2:"id";i:16910;s:11:"category_id";s:3:"183";s:8:"brand_id";i:39;s:3:"sku";s:10:"1197780100";s:4:"name";s:38:"Calcium standard solution 100 ml Merck";s:4:"slug";s:38:"calcium-standard-solution-100-ml-merck";s:5:"image";s:91:"https://vietchem.com.vn/uploads/vietchem/2020/02/calcium-standard-solution-100-ml-merck.jpg";s:6:"slides";s:0:"";s:11:"description";s:338:"Calcium standard solution 100 ml Merck, Code: 1197780100, Quy cách đóng gói: chai nhựa 100ml, Hãng - Xuất xứ: Merck- Đức. Hóa chất dạng lỏng, không màu. Được dùng làm tiêu chuẩn đánh giá và xác định hàm lượng calcium trong dung dịch dùng trong phân tích vô cơ của phòng thí nghiệm.";s:14:"specifications";s:3435:"<table style="height: 133px; width: 724px;">\r\n <tbody>\r\n <tr>\r\n <td style="width: 188px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tên sản phẩm:</strong></span></td>\r\n <td style="width: 527px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Calcium standard solution 100 ml Merck </strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 188px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Code:</strong></span></td>\r\n <td style="width: 527px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>1197780100</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 188px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Hãng - Xuất xứ:</strong></span></td>\r\n <td style="width: 527px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Merck Đức</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 188px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Ứng dụng:</strong></span></td>\r\n <td style="width: 527px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">Canxi dung dịch tiêu chuẩn có thể truy nguyên theo SRM từ NIST Ca(NO₃)₂ trong HNO₃ 0,5 mol/l, 1000 mg/l Ca Certipur®. Được dùng làm tiêu chuẩn đánh giá và xác định hàm lượng calcium trong dung dịch dùng trong phân tích vô cơ của phòng thí nghiệm.</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 188px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tính chất:</strong></span></td>\r\n <td style="width: 527px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Tỉ trọng: 1.014 g/cm<sup>3</sup> (20 °C)</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Giá trị pH: 0,5 (H₂O, 20 °C)</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Dạng chất lỏng không màu.</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 188px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Lưu trữ:</strong></span></td>\r\n <td style="width: 527px;"><span style="font-family: arial, helvetica, sans-serif;">Bảo quản ở + 15 °C đến + 25 °C.</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 188px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Quy cách</strong></span></td>\r\n <td style="width: 527px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 100 ml</span></td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <p><span style="font-family: arial, helvetica, sans-serif;"><strong>Sản phẩm tham khảo:</strong></span></p>\r\n <table style="height: 34px; width: 724px;">\r\n <tbody>\r\n <tr>\r\n <td style="width: 190px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Code</strong></span></td>\r\n <td style="width: 525px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Quy cách</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 190px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>1197780100</strong></span></td>\r\n <td style="width: 525px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 100 ml</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 190px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>1197780500</strong></span></td>\r\n <td style="width: 525px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 500 ml</span></td>\r\n </tr>\r\n </tbody>\r\n </table>";s:9:"price_low";i:562000;s:10:"price_high";i:648000;s:6:"detail";s:0:"";s:9:"catalogue";s:42:"Calcium standard solution 100 ml Merck.PDF";s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2020-06-26 16:23:25";s:10:"updated_at";s:19:"2020-09-09 22:25:46";s:4:"unit";N;}i:7;O:8:"stdClass":20:{s:2:"id";i:2323;s:11:"category_id";s:3:"183";s:8:"brand_id";i:38;s:3:"sku";s:10:"HI96701-11";s:4:"name";s:62:"Cal Check chuẩn Clo dư, 0.00 và 1.00 mg/L HI96701-11 Hanna";s:4:"slug";s:57:"cal-check-chuan-clo-du-0-00-va-1-00-mg-l-hi96701-11-hanna";s:5:"image";s:109:"https://vietchem.com.vn/uploads/vietchem/2018/07/cal-check-chuan-clo-du-0-00-va-1-00-mgl-hi96701-11-hanna.jpg";s:6:"slides";s:0:"";s:11:"description";s:205:"HI96701-11 Cal Check chuẩn Chlorine là bộ cuvet dung dịch chuẩn chất lượng cao dùng để đo và hiệu chỉnh máy quang đo clo tự do cầm tay có thang đo từ 0.00-5.00 mg/L (ppm).";s:14:"specifications";s:2780:"<table style="width: 718px;">\r\n <tbody>\r\n <tr>\r\n <td style="width: 159px;"><span style="font-family: arial, helvetica, sans-serif; font-size: 11pt;"><strong>Tên sản phẩm:</strong></span></td>\r\n <td style="width: 547px;"><span style="font-family: arial, helvetica, sans-serif; font-size: 11pt;"><strong>Cal Check chuẩn Clo dư, 0.00 và 1.00 mg/L HI96701-11 Hanna</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 159px;"><span style="font-family: arial, helvetica, sans-serif; font-size: 11pt;"><strong>Code:</strong></span></td>\r\n <td style="width: 547px;"><span style="font-family: arial, helvetica, sans-serif; font-size: 11pt;"><strong>HI96701-11 </strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 159px;"><span style="font-family: arial, helvetica, sans-serif; font-size: 11pt;"><strong>Hãng - Xuất xứ:</strong></span></td>\r\n <td style="width: 547px;"><span style="font-family: arial, helvetica, sans-serif; font-size: 11pt;"><strong>Hanna Instruments</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 159px;"><span style="font-family: arial, helvetica, sans-serif; font-size: 11pt;"><strong>Ứng dụng:</strong></span></td>\r\n <td style="width: 547px;"><span style="font-family: arial, helvetica, sans-serif; font-size: 11pt;">Dùng để đo và hiệu chỉnh máy quang đo clo tự do cầm tay có thang đo từ 0.00-5.00 mg/L (ppm).</span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 159px;"><span style="font-family: arial, helvetica, sans-serif; font-size: 11pt;"><strong>Mô tả sản phẩm: </strong></span></td>\r\n <td style="width: 547px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif; font-size: 11pt;">- HI96700-11 bao gồm một cuvet "A" dùng để zero máy và một cuvet "B" để xác nhận hoặc hiệu chuẩn. </span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif; font-size: 11pt;">- Giá trị chuẩn của Clo dư trong Cuvet B: 1.00 +/- 0.05 mg/l tại 25°C. </span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif; font-size: 11pt;">- Được cung cấp kèm Giấy chứng nhận phân tích (COA) được in rõ số lô sản xuất, giá trị tham chiếu và ngày hết hạn.</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif; font-size: 11pt;">- Nội dung Giấy chứng nhận phân tích gồm: mã hàng, số lô sản xuất, ngày hết hạn, giá trị chuẩn tại 25°C. </span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif; font-size: 11pt;">- Hộp đựng đi kèm: chắn ánh sáng và tránh va đập.</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif; font-size: 11pt;">- Máy tương thích: HI96101, HI96701, HI96710, HI96711, HI96745. </span></p>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>";s:9:"price_low";i:3807000;s:10:"price_high";i:4499000;s:6:"detail";s:125:"<p><iframe src="//www.youtube.com/embed/Fe8hJeNpHQI" width="560" height="314" allowfullscreen="allowfullscreen"></iframe></p>";s:9:"catalogue";N;s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2018-08-06 20:58:22";s:10:"updated_at";s:19:"2020-09-09 22:24:18";s:4:"unit";N;}i:8;O:8:"stdClass":20:{s:2:"id";i:8215;s:11:"category_id";s:3:"190";s:8:"brand_id";i:39;s:3:"sku";s:10:"1703310100";s:4:"name";s:107:"Magnesium ICP standard traceable to SRM from NIST Mg(NO₃)₂ in HNO₃ 2-3% 1000 mg/l Mg CertiPUR® Merck";s:4:"slug";s:94:"magnesium-icp-standard-traceable-to-srm-from-nist-mg-no-in-hno-2-3-1000-mg-l-mg-certipur-merck";s:5:"image";s:75:"https://vietchem.com.vn/uploads/vietchem/2019/07/magnesium-icp-standard.jpg";s:6:"slides";s:0:"";s:11:"description";s:305:"Magnesium ICP standard traceable to SRM from NIST Mg(NO₃)₂ in HNO₃ 2-3% 1000 mg/l Mg CertiPUR®. Code: 1703310100. Quy cách chai nhựa 100ml. Tồn tại ở dạng lỏng, không màu, không mùi. Được sử dụng trong phòng thí nghiệm để chuẩn bị mẫu thử và phân tích.";s:14:"specifications";s:2733:"<table style="width: 709px;">\r\n <tbody>\r\n <tr style="height: 42px;">\r\n <td style="height: 42px; width: 151px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tên sản phẩm:</strong></span></td>\r\n <td style="height: 42px; width: 546px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Magnesium ICP standard traceable to SRM from NIST Mg(NO₃)₂ in </strong></span><span style="font-family: arial, helvetica, sans-serif;"><strong>HNO₃ 2-3% 1000 mg/l Mg CertiPUR®</strong></span></td>\r\n </tr>\r\n <tr style="height: 17px;">\r\n <td style="height: 17px; width: 151px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Code:</strong></span></td>\r\n <td style="height: 17px; width: 546px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>1703310100</strong></span></td>\r\n </tr>\r\n <tr style="height: 17px;">\r\n <td style="height: 17px; width: 151px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Hãng - xuất xứ:</strong></span></td>\r\n <td style="height: 17px; width: 546px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Merck - Đức</strong></span></td>\r\n </tr>\r\n <tr style="height: 17px;">\r\n <td style="height: 17px; width: 151px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Ứng dụng:</strong></span></td>\r\n <td style="height: 17px; width: 546px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Thuốc thử để phân tích</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- S<span lang="vi" tabindex="0">ử dụng làm tiêu chuẩn tham chiếu</span></span></p>\r\n </td>\r\n </tr>\r\n <tr style="height: 162px;">\r\n <td style="height: 162px; width: 151px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tính chất:</strong></span></td>\r\n <td style="height: 162px; width: 546px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Hình thể: thể lỏng, không màu, không mùi</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Độ pH: Khoảng 0,5 ở 20 °C</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Mật độ: Khoảng 1,016 g/cm3 ở 20 °C</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Tính tan trong nước: ở 20 °C hòa tan được</span></p>\r\n </td>\r\n </tr>\r\n <tr style="height: 17px;">\r\n <td style="height: 17px; width: 151px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Bảo quản:</strong></span></td>\r\n <td style="height: 17px; width: 546px;"><span style="font-family: arial, helvetica, sans-serif;">Từ +15°C đến +25°C.</span></td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <p> </p>\r\n <p><br /> </p>";s:9:"price_low";i:2414000;s:10:"price_high";i:2785000;s:6:"detail";s:0:"";s:9:"catalogue";s:20:"170331_SDS_VN_VI.PDF";s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2020-06-26 16:22:34";s:10:"updated_at";s:19:"2020-09-09 22:24:29";s:4:"unit";N;}i:9;O:8:"stdClass":20:{s:2:"id";i:10523;s:11:"category_id";s:3:"183";s:8:"brand_id";i:39;s:3:"sku";s:10:"1703070100";s:4:"name";s:108:"Boron ICP standard traceable to SRM from NIST, H₃BO₃ in H₂O 1000 mg/l B Certipur® 100 ml Merck Đức";s:4:"slug";s:95:"boron-icp-standard-traceable-to-srm-from-nist-h-bo-in-h-o-1000-mg-l-b-certipur-100-ml-merck-duc";s:5:"image";s:104:"https://vietchem.com.vn/uploads/vietchem/2019/09/certipur-icp-standards-certipur-icp-standards-all-1.jpg";s:6:"slides";s:0:"";s:11:"description";s:194:"Boron ICP standard của Merck với độ tinh khiết cao, với nồng độ 1000 mg/l là chất chuẩn kim loại Boron phù hợp để chạy máy ICP, AAS. Quy cách: Chai nhựa 100 ml";s:14:"specifications";s:2861:"<table style="height: 207px; width: 734px;">\r\n <tbody>\r\n <tr style="height: 38px;">\r\n <td style="width: 203px; height: 38px;"><strong><span style="font-family: arial, helvetica, sans-serif;">Tên sản phẩm: </span></strong></td>\r\n <td style="width: 521px; height: 38px;"><strong><span style="font-family: arial, helvetica, sans-serif;">Boron ICP standard traceable to SRM from NIST, H₃BO₃ in H₂O 1000 mg/l B Certipur® 100 ml Merck Đức</span></strong></td>\r\n </tr>\r\n <tr style="height: 17px;">\r\n <td style="width: 203px; height: 17px;"><strong><span style="font-family: arial, helvetica, sans-serif;">Code:</span></strong></td>\r\n <td style="width: 521px; height: 17px;"><strong><span style="font-family: arial, helvetica, sans-serif;">1703070100</span></strong></td>\r\n </tr>\r\n <tr style="height: 17px;">\r\n <td style="width: 203px; height: 17px;"><strong><span style="font-family: arial, helvetica, sans-serif;">Hãng-Xuất xứ:</span></strong></td>\r\n <td style="width: 521px; height: 17px;"><strong><span style="font-family: arial, helvetica, sans-serif;">Merck Đức</span></strong></td>\r\n </tr>\r\n <tr style="height: 54px;">\r\n <td style="width: 203px; height: 54px;"><strong><span style="font-family: arial, helvetica, sans-serif;">Ứng dụng:</span></strong></td>\r\n <td style="width: 521px; height: 54px;"><span style="font-family: arial, helvetica, sans-serif;">Xây dựng đường chuẩn để xác định Boron trên các thiết bị ICP, AAS... Sử dụng phổ biến trong các phòng thí nghiệm, viện nghiên cứu...</span></td>\r\n </tr>\r\n <tr style="height: 88px;">\r\n <td style="width: 203px; height: 88px;"><strong><span style="font-family: arial, helvetica, sans-serif;">Tính chất:</span></strong></td>\r\n <td style="width: 521px; height: 88px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Mật độ: 1.000 g/cm3 (20 °C)</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Trạng thái: Lỏng</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Màu sắc: Không màu, không mùi</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Giá trị pH: 4 (H₂O, 20 °C)</span></p>\r\n </td>\r\n </tr>\r\n <tr style="height: 17px;">\r\n <td style="width: 203px; height: 17px;"><strong><span style="font-family: arial, helvetica, sans-serif;">Bảo quản:</span></strong></td>\r\n <td style="width: 521px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;">Bảo quản từ +15°C đến +25°C.</span></td>\r\n </tr>\r\n <tr style="height: 17px;">\r\n <td style="width: 203px; height: 17px;"><strong><span style="font-family: arial, helvetica, sans-serif;">Quy cách: </span></strong></td>\r\n <td style="width: 521px; height: 17px;"><span style="font-family: arial, helvetica, sans-serif;">Chai nhựa 100 ml</span></td>\r\n </tr>\r\n </tbody>\r\n </table>";s:9:"price_low";i:2650000;s:10:"price_high";i:3058000;s:6:"detail";s:0:"";s:9:"catalogue";s:22:"Boron ICP standard.PDF";s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2019-10-19 17:13:04";s:10:"updated_at";s:19:"2020-09-09 22:24:34";s:4:"unit";N;}i:10;O:8:"stdClass":20:{s:2:"id";i:2332;s:11:"category_id";s:3:"183";s:8:"brand_id";i:38;s:3:"sku";s:10:"HI96710-11";s:4:"name";s:56:"CAL Check™ Chuẩn pH, 0.0 và 7.0 pH HI96710-11 Hanna";s:4:"slug";s:49:"cal-check-chuan-ph-0-0-va-7-0-ph-hi96710-11-hanna";s:5:"image";s:102:"https://vietchem.com.vn/uploads/vietchem/2018/07/cal-check-chuan-ph-0-0-va-7-0-ph-hi96710-11-hanna.jpg";s:6:"slides";s:0:"";s:11:"description";s:145:"HI96710-11 là một bộ cuvet dung dịch chuẩn CAL CheckTM đơn giản dùng để kiểm tra và hiệu chuẩn Máy quang đo pH HI96710.";s:14:"specifications";s:2544:"<table style="width: 720px;">\r\n <tbody>\r\n <tr>\r\n <td style="width: 169px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tên sản phẩm:</strong></span></td>\r\n <td style="width: 566px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>CAL Check™ Chuẩn pH, 0.0 và 7.0 pH HI96710-11 Hanna</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 169px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Code: </strong></span></td>\r\n <td style="width: 566px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>HI96710-11</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 169px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Hãng - Xuất xứ:</strong></span></td>\r\n <td style="width: 566px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Hanna Instruments</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 169px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Ứng dụng:</strong></span></td>\r\n <td style="width: 566px;"><span style="font-family: arial, helvetica, sans-serif;">Dùng để kiểm tra và hiệu chuẩn Máy quang đo pH HI96710. </span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 169px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Mô tả sản phẩm:</strong></span></td>\r\n <td style="width: 566px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">-Đóng gói: 2 cuvet chứa dung dịch chuẩn: 0.0 và 7.0 pH</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">-Số lượng: 1 bộ</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">-HI96710-11 bao gồm một cuvet "A" dùng để zero máy và một cuvet "B" để xác nhận hoặc hiệu chuẩn. </span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">-Giá trị chuẩn từ cuvet B 7.0 ± 0.1 mg/L tại 25°C. </span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">-Được cung cấp kèm Giấy chứng nhận phân tích (COA) được in rõ số lô sản xuất, giá trị tham chiếu và ngày hết hạn.</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">-Nội dung Giấy chứng nhận phân tích gồm: mã hàng, số lô sản xuất, ngày hết hạn, giá trị chuẩn tại 25°C. </span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">-Hộp đựng đi kèm: chắn ánh sáng và tránh va đập. </span></p>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>";s:9:"price_low";i:3807000;s:10:"price_high";i:4499000;s:6:"detail";s:125:"<p><iframe src="//www.youtube.com/embed/Fe8hJeNpHQI" width="560" height="314" allowfullscreen="allowfullscreen"></iframe></p>";s:9:"catalogue";N;s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2018-08-07 22:54:43";s:10:"updated_at";s:19:"2020-09-09 22:24:18";s:4:"unit";N;}i:11;O:8:"stdClass":20:{s:2:"id";i:8222;s:11:"category_id";s:3:"183";s:8:"brand_id";i:39;s:3:"sku";s:10:"5004200001";s:4:"name";s:87:"Refractive index standard traceable to SRM from NIST and PTB 20° Brix Certipur® Merck";s:4:"slug";s:83:"refractive-index-standard-traceable-to-srm-from-nist-and-ptb-20-brix-certipur-merck";s:5:"image";s:84:"https://vietchem.com.vn/uploads/vietchem/2019/07/certipur-brix-certipur-brix-all.jpg";s:6:"slides";s:0:"";s:11:"description";s:266:"Refractive index standard traceable to SRM from NIST and PTB 20° Brix Certipur®. Code. 5004200001. Là hóa chất tinh khiết được sử dụng nhiều trong phòng thí nghiệm. Dùng trong phân tích và kiểm tra độ chính xác của khúc xạ kế.";s:14:"specifications";s:2003:"<table style="width: 720px;">\r\n <tbody>\r\n <tr>\r\n <td style="width: 130px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Tên sản phẩm:</strong></span></td>\r\n <td style="width: 576px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Refractive index standard traceable to SRM from NIST and PTB 20° Brix Certipur®</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 130px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Code:</strong></span></td>\r\n <td style="width: 576px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>5004200001</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 130px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Hãng- xuất xứ:</strong></span></td>\r\n <td style="width: 576px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Merck- Đức</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 130px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Quy cách:</strong></span></td>\r\n <td style="width: 576px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>5 x 8ml/ lọ</strong></span></td>\r\n </tr>\r\n <tr>\r\n <td style="width: 130px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Ứng dụng:</strong></span></td>\r\n <td style="width: 576px;">\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Sử dụng các tiêu chuẩn chỉ số khúc xạ để kiểm tra độ chính xác của khúc xạ kế trong việc đánh giá hàm lượng đường</span></p>\r\n <p><span style="font-family: arial, helvetica, sans-serif;">- Chuẩn bị mẫu và phân tích</span></p>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style="width: 130px;"><span style="font-family: arial, helvetica, sans-serif;"><strong>Bảo quản:</strong></span></td>\r\n <td style="width: 576px;"><span style="font-family: arial, helvetica, sans-serif;">Từ +15°C đến +25°C.</span></td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <p> </p>\r\n <p><br /> </p>";s:9:"price_low";i:3803000;s:10:"price_high";i:4388000;s:6:"detail";s:0:"";s:9:"catalogue";s:24:"500420_SUB_SDS_VN_VI.PDF";s:11:"check_sever";i:0;s:6:"orders";i:9999999;s:6:"status";i:1;s:10:"created_at";s:19:"2020-06-26 16:22:34";s:10:"updated_at";s:19:"2020-09-09 22:24:29";s:4:"unit";N;}}}s:10:"\x00*\x00perPage";i:12;s:14:"\x00*\x00currentPage";i:1;s:7:"\x00*\x00path";s:34:"https://vietchem.com.vn/chat-chuan";s:8:"\x00*\x00query";a:0:{}s:11:"\x00*\x00fragment";N;s:11:"\x00*\x00pageName";s:4:"page";} """
true
* * @param string $key * @param mixed $value * @return int */ public function decrement($key, $value = 1) { return $this->increment($key, $value * -1); } /** * Store an item in the cache indefinitely. * * @param string $key * @param mixed $value * @return void */ public function forever($key, $value) { $this->put($key, $value, 0); } /** * Remove an item from the cache. * * @param string $key * @return bool */ public function forget($key) { if ($this->files->exists($file = $this->path($key))) { return $this->files->delete($file); } return false; } /** * Remove all items from the cache. *
"data_product_chat-chuan_page_0"
LengthAwarePaginator {#769}
0
* * @param string $key * @param mixed $value * @return int|bool */ public function decrement($key, $value = 1) { return $this->store->decrement($key, $value); } /** * Store an item in the cache indefinitely. * * @param string $key * @param mixed $value * @return void */ public function forever($key, $value) { $this->store->forever($this->itemKey($key), $value); $this->event(new KeyWritten($key, $value, 0)); } /** * Get an item from the cache, or store the default value. * * @param string $key * @param \DateTimeInterface|\DateInterval|float|int $minutes * @param \Closure $callback * @return mixed */ public function remember($key, $minutes, Closure $callback) { $value = $this->get($key); // If the item exists in the cache we will just return this immediately and if // not we will execute the given Closure and cache the result of that for a // given number of minutes so it's available for all subsequent requests. if (! is_null($value)) {
"data_product_chat-chuan_page_0"
LengthAwarePaginator {#769}
/** * Get an item from the cache, or store the default value forever. * * @param string $key * @param \Closure $callback * @return mixed */ public function rememberForever($key, Closure $callback) { $value = $this->get($key); // If the item exists in the cache we will just return this immediately and if // not we will execute the given Closure and cache the result of that for a // given number of minutes so it's available for all subsequent requests. if (! is_null($value)) { return $value; } $this->forever($key, $value = $callback()); return $value; } /** * Remove an item from the cache. * * @param string $key * @return bool */ public function forget($key) { return tap($this->store->forget($this->itemKey($key)), function () use ($key) { $this->event(new KeyForgotten($key)); }); } /** * {@inheritdoc} */
"data_product_chat-chuan_page_0"
LengthAwarePaginator {#769}
* @param \Closure $callback * @return $this */ public function extend($driver, Closure $callback) { $this->customCreators[$driver] = $callback->bindTo($this, $this); return $this; } /** * Dynamically call the default driver instance. * * @param string $method * @param array $parameters * @return mixed */ public function __call($method, $parameters) { return $this->store()->$method(...$parameters); } }
} /** * Handle dynamic, static calls to the object. * * @param string $method * @param array $args * @return mixed * * @throws \RuntimeException */ public static function __callStatic($method, $args) { $instance = static::getFacadeRoot(); if (! $instance) { throw new RuntimeException('A facade root has not been set.'); } return $instance->$method(...$args); } }
// $data_product = $data_product -> orWhere('category_id',$v->id); } } } } // dump($cate_ids); // $data_categories_map = DB::table('products_categories_map')->select('product_id')->whereIn('category_id', $cate_ids)->pluck('product_id')->toArray(); $data_product = $data_product->whereIn('category_id',$cate_ids); if($brand_id>0){ $cache_name = 'data_product_'.$slug.'_brand_'.$brand_id; $data_product = Cache::rememberForever($cache_name, function() use ($data_product,$brand_id) { return $data_product->where('brand_id',$brand_id)->orderBy('orders','asc')->get(); }); //$data_product = $data_product->where('brand_id',$brand_id)->get(); }else{ $page = $request->get('page',0); $cache_name = 'data_product_'.$slug.'_page_'.$page; $data_product = Cache::rememberForever($cache_name, function() use ($data_product,$page_size) { return $data_product->orderBy('orders','asc')->paginate($page_size); }); //$data_product = $data_product->paginate($page_size); } $meta_seo = $this->meta_seo('products_categories',$data_cate->id,[ 'title' => $data_cate->name, 'description'=> cutString($data_cate->detail,160), 'url' => url('').url_cate($data_cate->slug) ]); $category_involve = DB::table('products_categories')->where('status',1)->where('parent_id',$data_cate->id)->limit($page_size_product_involve)->get(); $data_brand = Cache::rememberForever('data_brand_'.$slug, function() use ($cate_ids) { return DB::table('brands') ->select(['brands.*',DB::raw('count(products.id) as count')]) ->leftJoin('products','brands.id','=','products.brand_id') ->whereIn('products.category_id',$cate_ids) ->where('products.status',1)->where('brands.status',1) ->groupBy('products.brand_id') ->orderBy('count','DESC')->limit(10) ->get(); }); $admin_bar_edit = route('products_categories.edit', $data_cate->id); return view('web.category.show',compact('data_cate','data_product','meta_seo','category_involve','data_brand','page_size_brands','page_size_product_involve','cate_ids','brand_id','case_category','admin_bar_edit'));
/** * Get the middleware assigned to the controller. * * @return array */ public function getMiddleware() { return $this->middleware; } /** * Execute an action on the controller. * * @param string $method * @param array $parameters * @return \Symfony\Component\HttpFoundation\Response */ public function callAction($method, $parameters) { return call_user_func_array([$this, $method], $parameters); } /** * Handle calls to missing methods on the controller. * * @param string $method * @param array $parameters * @return mixed * * @throws \BadMethodCallException */ public function __call($method, $parameters) { throw new BadMethodCallException("Method [{$method}] does not exist on [".get_class($this).'].'); } }
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
"chat-chuan"
/** * Get the middleware assigned to the controller. * * @return array */ public function getMiddleware() { return $this->middleware; } /** * Execute an action on the controller. * * @param string $method * @param array $parameters * @return \Symfony\Component\HttpFoundation\Response */ public function callAction($method, $parameters) { return call_user_func_array([$this, $method], $parameters); } /** * Handle calls to missing methods on the controller. * * @param string $method * @param array $parameters * @return mixed * * @throws \BadMethodCallException */ public function __call($method, $parameters) { throw new BadMethodCallException("Method [{$method}] does not exist on [".get_class($this).'].'); } }
array:2 [ 0 => CategoryController {#423} 1 => "index" ]
array:2 [ 0 => Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" } "slug" => "chat-chuan" ]
{ $this->container = $container; } /** * Dispatch a request to a given controller and method. * * @param \Illuminate\Routing\Route $route * @param mixed $controller * @param string $method * @return mixed */ public function dispatch(Route $route, $controller, $method) { $parameters = $this->resolveClassMethodDependencies( $route->parametersWithoutNulls(), $controller, $method ); if (method_exists($controller, 'callAction')) { return $controller->callAction($method, $parameters); } return $controller->{$method}(...array_values($parameters)); } /** * Get the middleware for the controller instance. * * @param \Illuminate\Routing\Controller $controller * @param string $method * @return array */ public function getMiddleware($controller, $method) { if (! method_exists($controller, 'getMiddleware')) { return []; } return collect($controller->getMiddleware())->reject(function ($data) use ($method) { return static::methodExcludedByOptions($method, $data['options']);
"index"
array:2 [ 0 => Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" } "slug" => "chat-chuan" ]
protected function runCallable() { $callable = $this->action['uses']; return $callable(...array_values($this->resolveMethodDependencies( $this->parametersWithoutNulls(), new ReflectionFunction($this->action['uses']) ))); } /** * Run the route action and return the response. * * @return mixed * * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException */ protected function runController() { return $this->controllerDispatcher()->dispatch( $this, $this->getController(), $this->getControllerMethod() ); } /** * Get the controller instance for the route. * * @return mixed */ public function getController() { if (! $this->controller) { $class = $this->parseControllerCallback()[0]; $this->controller = $this->container->make(ltrim($class, '\\')); } return $this->controller; } /**
* * @throws \UnexpectedValueException */ protected function parseAction($action) { return RouteAction::parse($this->uri, $action); } /** * Run the route action and return the response. * * @return mixed */ public function run() { $this->container = $this->container ?: new Container; try { if ($this->isControllerAction()) { return $this->runController(); } return $this->runCallable(); } catch (HttpResponseException $e) { return $e->getResponse(); } } /** * Checks whether the route's action is a controller. * * @return bool */ protected function isControllerAction() { return is_string($this->action['uses']); } /** * Run the route action and return the response.
/** * Run the given route within a Stack "onion" instance. * * @param \Illuminate\Routing\Route $route * @param \Illuminate\Http\Request $request * @return mixed */ protected function runRouteWithinStack(Route $route, Request $request) { $shouldSkipMiddleware = $this->container->bound('middleware.disable') && $this->container->make('middleware.disable') === true; $middleware = $shouldSkipMiddleware ? [] : $this->gatherRouteMiddleware($route); return (new Pipeline($this->container)) ->send($request) ->through($middleware) ->then(function ($request) use ($route) { return $this->prepareResponse( $request, $route->run() ); }); } /** * Gather the middleware for the given route with resolved class names. * * @param \Illuminate\Routing\Route $route * @return array */ public function gatherRouteMiddleware(Route $route) { $middleware = collect($route->gatherMiddleware())->map(function ($name) { return (array) MiddlewareNameResolver::resolve($name, $this->middleware, $this->middlewareGroups); })->flatten(); return $this->sortMiddleware($middleware); } /**
use Symfony\Component\Debug\Exception\FatalThrowableError; /** * This extended pipeline catches any exceptions that occur during each slice. * * The exceptions are converted to HTTP responses for proper middleware handling. */ class Pipeline extends BasePipeline { /** * Get the final piece of the Closure onion. * * @param \Closure $destination * @return \Closure */ protected function prepareDestination(Closure $destination) { return function ($passable) use ($destination) { try { return $destination($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry();
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
*/ public function __construct(Registrar $router) { $this->router = $router; } /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $this->router->substituteBindings($route = $request->route()); $this->router->substituteImplicitBindings($route); return $next($request); } }
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#611 : "Illuminate\Routing\Pipeline" : Pipeline {#411 …} : { : {} } : { : Closure {#418 …} } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
} /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed * * @throws \Illuminate\Session\TokenMismatchException */ public function handle($request, Closure $next) { if ( $this->isReading($request) || $this->runningUnitTests() || $this->inExceptArray($request) || $this->tokensMatch($request) ) { return $this->addCookieToResponse($request, $next($request)); } throw new TokenMismatchException; } /** * Determine if the HTTP request uses a ‘read’ verb. * * @param \Illuminate\Http\Request $request * @return bool */ protected function isReading($request) { return in_array($request->method(), ['HEAD', 'GET', 'OPTIONS']); } /** * Determine if the application is running unit tests. * * @return bool
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#707 : "Illuminate\Routing\Pipeline" : Pipeline {#411 …} : { : {} } : { : Closure {#611 …} : "Illuminate\Routing\Middleware\SubstituteBindings" } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { // If the current session has an "errors" variable bound to it, we will share // its value with all view instances so the views can easily access errors // without having to bind. An empty bag is set when there aren't errors. $this->view->share( 'errors', $request->session()->get('errors') ?: new ViewErrorBag ); // Putting the errors in the view for every view allows the developer to just // assume that some errors are always available, which is convenient since // they don't have to continually run checks for the presence of errors. return $next($request); } }
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#713 : "Illuminate\Routing\Pipeline" : Pipeline {#411 …} : { : {} } : { : Closure {#707 …} : "App\Http\Middleware\VerifyCsrfToken" } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $this->sessionHandled = true; // If a session driver has been configured, we will need to start the session here // so that the data is ready for an application. Note that the Laravel sessions // do not make use of PHP "native" sessions in any way since they are crappy. if ($this->sessionConfigured()) { $request->setLaravelSession( $session = $this->startSession($request) ); $this->collectGarbage($session); } $response = $next($request); // Again, if the session has been configured we will need to close out the session // so that the attributes may be persisted to some storage medium. We will also // add the session identifier cookie to the application response headers now. if ($this->sessionConfigured()) { $this->storeCurrentUrl($request, $session); $this->addCookieToResponse($response, $session); } return $response; } /** * Perform any final actions for the request lifecycle. * * @param \Illuminate\Http\Request $request * @param \Symfony\Component\HttpFoundation\Response $response * @return void */
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#714 : "Illuminate\Routing\Pipeline" : Pipeline {#411 …} : { : {} } : { : Closure {#713 …} : "Illuminate\View\Middleware\ShareErrorsFromSession" } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* Create a new CookieQueue instance. * * @param \Illuminate\Contracts\Cookie\QueueingFactory $cookies * @return void */ public function __construct(CookieJar $cookies) { $this->cookies = $cookies; } /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $response = $next($request); foreach ($this->cookies->getQueuedCookies() as $cookie) { $response->headers->setCookie($cookie); } return $response; } }
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#715 : "Illuminate\Routing\Pipeline" : Pipeline {#411 …} : { : {} } : { : Closure {#714 …} : "Illuminate\Session\Middleware\StartSession" } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* Disable encryption for the given cookie name(s). * * @param string|array $cookieName * @return void */ public function disableFor($cookieName) { $this->except = array_merge($this->except, (array) $cookieName); } /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { return $this->encrypt($next($this->decrypt($request))); } /** * Decrypt the cookies on the request. * * @param \Symfony\Component\HttpFoundation\Request $request * @return \Symfony\Component\HttpFoundation\Request */ protected function decrypt(Request $request) { foreach ($request->cookies as $key => $c) { if ($this->isDisabled($key)) { continue; } try { $request->cookies->set($key, $this->decryptCookie($c)); } catch (DecryptException $e) { $request->cookies->set($key, null); }
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#716 : "Illuminate\Routing\Pipeline" : Pipeline {#411 …} : { : {} } : { : Closure {#715 …} : "Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse" } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
public function via($method) { $this->method = $method; return $this; } /** * Run the pipeline with a final destination callback. * * @param \Closure $destination * @return mixed */ public function then(Closure $destination) { $pipeline = array_reduce( array_reverse($this->pipes), $this->carry(), $this->prepareDestination($destination) ); return $pipeline($this->passable); } /** * Get the final piece of the Closure onion. * * @param \Closure $destination * @return \Closure */ protected function prepareDestination(Closure $destination) { return function ($passable) use ($destination) { return $destination($passable); }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* * @param \Illuminate\Routing\Route $route * @param \Illuminate\Http\Request $request * @return mixed */ protected function runRouteWithinStack(Route $route, Request $request) { $shouldSkipMiddleware = $this->container->bound('middleware.disable') && $this->container->make('middleware.disable') === true; $middleware = $shouldSkipMiddleware ? [] : $this->gatherRouteMiddleware($route); return (new Pipeline($this->container)) ->send($request) ->through($middleware) ->then(function ($request) use ($route) { return $this->prepareResponse( $request, $route->run() ); }); } /** * Gather the middleware for the given route with resolved class names. * * @param \Illuminate\Routing\Route $route * @return array */ public function gatherRouteMiddleware(Route $route) { $middleware = collect($route->gatherMiddleware())->map(function ($name) { return (array) MiddlewareNameResolver::resolve($name, $this->middleware, $this->middlewareGroups); })->flatten(); return $this->sortMiddleware($middleware); } /** * Sort the given middleware by priority. *
return $route; } /** * Return the response for the given route. * * @param Route $route * @param Request $request * @return mixed */ protected function runRoute(Request $request, Route $route) { $request->setRouteResolver(function () use ($route) { return $route; }); $this->events->dispatch(new Events\RouteMatched($route, $request)); return $this->prepareResponse($request, $this->runRouteWithinStack($route, $request) ); } /** * Run the given route within a Stack "onion" instance. * * @param \Illuminate\Routing\Route $route * @param \Illuminate\Http\Request $request * @return mixed */ protected function runRouteWithinStack(Route $route, Request $request) { $shouldSkipMiddleware = $this->container->bound('middleware.disable') && $this->container->make('middleware.disable') === true; $middleware = $shouldSkipMiddleware ? [] : $this->gatherRouteMiddleware($route); return (new Pipeline($this->container)) ->send($request) ->through($middleware)
Route {#374}
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse */ public function dispatch(Request $request) { $this->currentRequest = $request; return $this->dispatchToRoute($request); } /** * Dispatch the request to a route and return the response. * * @param \Illuminate\Http\Request $request * @return mixed */ public function dispatchToRoute(Request $request) { return $this->runRoute($request, $this->findRoute($request)); } /** * Find the route matching a given request. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Routing\Route */ protected function findRoute($request) { $this->current = $route = $this->routes->match($request); $this->container->instance(Route::class, $route); return $route; } /** * Return the response for the given route. *
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Route {#374}
* @return mixed */ public function respondWithRoute($name) { $route = tap($this->routes->getByName($name))->bind($this->currentRequest); return $this->runRoute($this->currentRequest, $route); } /** * Dispatch the request to the application. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse */ public function dispatch(Request $request) { $this->currentRequest = $request; return $this->dispatchToRoute($request); } /** * Dispatch the request to a route and return the response. * * @param \Illuminate\Http\Request $request * @return mixed */ public function dispatchToRoute(Request $request) { return $this->runRoute($request, $this->findRoute($request)); } /** * Find the route matching a given request. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Routing\Route */ protected function findRoute($request)
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* @return void */ public function bootstrap() { if (! $this->app->hasBeenBootstrapped()) { $this->app->bootstrapWith($this->bootstrappers()); } } /** * Get the route dispatcher callback. * * @return \Closure */ protected function dispatchToRouter() { return function ($request) { $this->app->instance('request', $request); return $this->router->dispatch($request); }; } /** * Call the terminate method on any terminable middleware. * * @param \Illuminate\Http\Request $request * @param \Illuminate\Http\Response $response * @return void */ public function terminate($request, $response) { $this->terminateMiddleware($request, $response); $this->app->terminate(); } /** * Call the terminate method on any terminable middleware. *
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
use Symfony\Component\Debug\Exception\FatalThrowableError; /** * This extended pipeline catches any exceptions that occur during each slice. * * The exceptions are converted to HTTP responses for proper middleware handling. */ class Pipeline extends BasePipeline { /** * Get the final piece of the Closure onion. * * @param \Closure $destination * @return \Closure */ protected function prepareDestination(Closure $destination) { return function ($passable) use ($destination) { try { return $destination($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry();
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* @param LaravelDebugbar $debugbar */ public function __construct(Container $container, LaravelDebugbar $debugbar) { $this->container = $container; $this->debugbar = $debugbar; $this->except = config('debugbar.except') ?: []; } /** * Handle an incoming request. * * @param Request $request * @param Closure $next * @return mixed */ public function handle($request, Closure $next) { if (!$this->debugbar->isEnabled() || $this->inExceptArray($request)) { return $next($request); } $this->debugbar->boot(); try { /** @var \Illuminate\Http\Response $response */ $response = $next($request); } catch (Exception $e) { $response = $this->handleException($request, $e); } catch (Error $error) { $e = new FatalThrowableError($error); $response = $this->handleException($request, $e); } // Modify the response to add the Debugbar $this->debugbar->modifyResponse($request, $response); return $response; }
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#390 : "Illuminate\Routing\Pipeline" : Pipeline {#33 …} : { : {} } : { : Closure {#22 …} } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* The additional attributes passed to the middleware. * * @var array */ protected $attributes = []; /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next, ...$attributes) { $this->attributes = $attributes; $this->clean($request); return $next($request); } /** * Clean the request's data. * * @param \Illuminate\Http\Request $request * @return void */ protected function clean($request) { $this->cleanParameterBag($request->query); if ($request->isJson()) { $this->cleanParameterBag($request->json()); } else { $this->cleanParameterBag($request->request); } } /**
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#391 : "Illuminate\Routing\Pipeline" : Pipeline {#33 …} : { : {} } : { : Closure {#390 …} : "Barryvdh\Debugbar\Middleware\InjectDebugbar" } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* The additional attributes passed to the middleware. * * @var array */ protected $attributes = []; /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next, ...$attributes) { $this->attributes = $attributes; $this->clean($request); return $next($request); } /** * Clean the request's data. * * @param \Illuminate\Http\Request $request * @return void */ protected function clean($request) { $this->cleanParameterBag($request->query); if ($request->isJson()) { $this->cleanParameterBag($request->json()); } else { $this->cleanParameterBag($request->request); } } /**
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#392 : "Illuminate\Routing\Pipeline" : Pipeline {#33 …} : { : {} } : { : Closure {#391 …} : "Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull" } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
class ValidatePostSize { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed * * @throws \Illuminate\Http\Exceptions\PostTooLargeException */ public function handle($request, Closure $next) { $max = $this->getPostMaxSize(); if ($max > 0 && $request->server('CONTENT_LENGTH') > $max) { throw new PostTooLargeException; } return $next($request); } /** * Determine the server 'post_max_size' as bytes. * * @return int */ protected function getPostMaxSize() { if (is_numeric($postMaxSize = ini_get('post_max_size'))) { return (int) $postMaxSize; } $metric = strtoupper(substr($postMaxSize, -1)); $postMaxSize = (int) $postMaxSize; switch ($metric) { case 'K': return $postMaxSize * 1024; case 'M':
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#393 : "Illuminate\Routing\Pipeline" : Pipeline {#33 …} : { : {} } : { : Closure {#392 …} : "App\Http\Middleware\TrimStrings" } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
} /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed * * @throws \Symfony\Component\HttpKernel\Exception\HttpException */ public function handle($request, Closure $next) { if ($this->app->isDownForMaintenance()) { $data = json_decode(file_get_contents($this->app->storagePath().'/framework/down'), true); throw new MaintenanceModeException($data['time'], $data['retry'], $data['message']); } return $next($request); } }
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#394 : "Illuminate\Routing\Pipeline" : Pipeline {#33 …} : { : {} } : { : Closure {#393 …} : "Illuminate\Foundation\Http\Middleware\ValidatePostSize" } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
public function via($method) { $this->method = $method; return $this; } /** * Run the pipeline with a final destination callback. * * @param \Closure $destination * @return mixed */ public function then(Closure $destination) { $pipeline = array_reduce( array_reverse($this->pipes), $this->carry(), $this->prepareDestination($destination) ); return $pipeline($this->passable); } /** * Get the final piece of the Closure onion. * * @param \Closure $destination * @return \Closure */ protected function prepareDestination(Closure $destination) { return function ($passable) use ($destination) { return $destination($passable); }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
} /** * Send the given request through the middleware / router. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ protected function sendRequestThroughRouter($request) { $this->app->instance('request', $request); Facade::clearResolvedInstance('request'); $this->bootstrap(); return (new Pipeline($this->app)) ->send($request) ->through($this->app->shouldSkipMiddleware() ? [] : $this->middleware) ->then($this->dispatchToRouter()); } /** * Bootstrap the application for HTTP requests. * * @return void */ public function bootstrap() { if (! $this->app->hasBeenBootstrapped()) { $this->app->bootstrapWith($this->bootstrappers()); } } /** * Get the route dispatcher callback. * * @return \Closure */ protected function dispatchToRouter()
$router->middlewareGroup($key, $middleware); } foreach ($this->routeMiddleware as $key => $middleware) { $router->aliasMiddleware($key, $middleware); } } /** * Handle an incoming HTTP request. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function handle($request) { try { $request->enableHttpMethodParameterOverride(); $response = $this->sendRequestThroughRouter($request); } catch (Exception $e) { $this->reportException($e); $response = $this->renderException($request, $e); } catch (Throwable $e) { $this->reportException($e = new FatalThrowableError($e)); $response = $this->renderException($request, $e); } $this->app['events']->dispatch( new Events\RequestHandled($request, $response) ); return $response; } /** * Send the given request through the middleware / router. *
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
*/ $app = require_once __DIR__.'/../bootstrap/app.php'; /* |-------------------------------------------------------------------------- | Run The Application |-------------------------------------------------------------------------- | | Once we have the application, we can handle the incoming request | through the kernel, and send the associated response back to | the client's browser allowing them to enjoy the creative | and wonderful application we have prepared for them. | */ $kernel = $app->make(Illuminate\Contracts\Http\Kernel::class); $response = $kernel->handle( $request = Illuminate\Http\Request::capture() ); $response->send(); $kernel->terminate($request, $response);
Request {#42 #json: null #convertedFiles: [] #userResolver: Closure {#412 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#403 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#374 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/chat-chuan" #requestUri: "/chat-chuan" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#728} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
<?php /** * Laravel - A PHP Framework For Web Artisans * * @package Laravel * @author Taylor Otwell <taylor@laravel.com> */ $uri = urldecode( parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) ); // This file allows us to emulate Apache's "mod_rewrite" functionality from the // built-in PHP web server. This provides a convenient way to test a Laravel // application without having installed a "real" web server software here. if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) { return false; } require_once __DIR__.'/public/index.php';
"/home/admin/domains/vietchem.com.vn/public_html/public/index.php"
Key | Value |
USER | "admin"
|
HOME | "/home/admin"
|
SCRIPT_NAME | "/index.php"
|
REQUEST_URI | "/chat-chuan"
|
QUERY_STRING | "" |
REQUEST_METHOD | "GET"
|
SERVER_PROTOCOL | "HTTP/2.0"
|
GATEWAY_INTERFACE | "CGI/1.1"
|
REDIRECT_URL | "/chat-chuan"
|
REMOTE_PORT | "57964"
|
SCRIPT_FILENAME | "/home/admin/domains/vietchem.com.vn/private_html/index.php"
|
SERVER_ADMIN | "webmaster@vietchem.com.vn"
|
CONTEXT_DOCUMENT_ROOT | "/home/admin/domains/vietchem.com.vn/private_html"
|
CONTEXT_PREFIX | "" |
REQUEST_SCHEME | "https"
|
DOCUMENT_ROOT | "/home/admin/domains/vietchem.com.vn/private_html"
|
REMOTE_ADDR | "54.227.104.229"
|
SERVER_PORT | "443"
|
SERVER_ADDR | "45.117.169.137"
|
SERVER_NAME | "vietchem.com.vn"
|
SERVER_SOFTWARE | "Apache/2"
|
SERVER_SIGNATURE | "" |
PATH | "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"
|
HTTP_HOST | "vietchem.com.vn"
|
HTTP_REFERER | "https://vietchem.com.vn/chat-chuan/"
|
HTTP_USER_AGENT | "claudebot"
|
HTTP_ACCEPT | "*/*"
|
proxy-nokeepalive | "1"
|
H2_STREAM_TAG | "117-5"
|
H2_STREAM_ID | "5"
|
H2_PUSHED_ON | "" |
H2_PUSHED | "" |
H2_PUSH | "off"
|
H2PUSH | "off"
|
HTTP2 | "on"
|
SSL_TLS_SNI | "vietchem.com.vn"
|
HTTPS | "on"
|
SCRIPT_URI | "https://vietchem.com.vn/chat-chuan"
|
SCRIPT_URL | "/chat-chuan"
|
UNIQUE_ID | "ZgUzQILNSh7KJjSglr3DWAAAQBw"
|
REDIRECT_STATUS | "200"
|
REDIRECT_H2_STREAM_TAG | "117-5"
|
REDIRECT_H2_STREAM_ID | "5"
|
REDIRECT_H2_PUSHED_ON | "" |
REDIRECT_H2_PUSHED | "" |
REDIRECT_H2_PUSH | "off"
|
REDIRECT_H2PUSH | "off"
|
REDIRECT_HTTP2 | "on"
|
REDIRECT_SSL_TLS_SNI | "vietchem.com.vn"
|
REDIRECT_HTTPS | "on"
|
REDIRECT_SCRIPT_URI | "https://vietchem.com.vn/chat-chuan"
|
REDIRECT_SCRIPT_URL | "/chat-chuan"
|
REDIRECT_UNIQUE_ID | "ZgUzQILNSh7KJjSglr3DWAAAQBw"
|
FCGI_ROLE | "RESPONDER"
|
PHP_SELF | "/index.php"
|
REQUEST_TIME_FLOAT | 1711616832.4472
|
REQUEST_TIME | 1711616832
|
APP_NAME | "VietChem"
|
APP_ENV | "local"
|
APP_KEY | "base64:Fd8nDg5pcpyqXHpQuYNcfOhWx9a3P7bot+AOTCXe+gs="
|
APP_DEBUG | "true"
|
APP_LOG_LEVEL | "debug"
|
APP_URL | "https://vietchem.com.vn"
|
DEBUGBAR_ENABLED | "false"
|
DB_CONNECTION | "mysql"
|
DB_HOST | "127.0.0.1"
|
DB_PORT | "3306"
|
DB_DATABASE | "admin_test"
|
DB_USERNAME | "admin_test"
|
DB_PASSWORD | "Vietchem@123"
|
BROADCAST_DRIVER | "log"
|
CACHE_DRIVER | "file"
|
SESSION_DRIVER | "file"
|
QUEUE_DRIVER | "sync"
|
REDIS_HOST | "127.0.0.1"
|
REDIS_PASSWORD | "null"
|
REDIS_PORT | "6379"
|
MAIL_DRIVER | "ses"
|
MAIL_HOST | "mailtrap.io"
|
MAIL_PORT | "2525"
|
MAIL_USERNAME | "null"
|
MAIL_PASSWORD | "null"
|
MAIL_ENCRYPTION | "null"
|
MAIL_FROM_ADDRESS | "no-reply@sudo.vn"
|
MAIL_FROM_NAME | "SudoCMS"
|
SES_REGION | "us-east-1"
|
PUSHER_APP_ID | "" |
PUSHER_APP_KEY | "" |
PUSHER_APP_SECRET | "" |
STORAGE_TYPE | "local"
|
Key | Value |
APP_NAME | "VietChem"
|
APP_ENV | "local"
|
APP_KEY | "base64:Fd8nDg5pcpyqXHpQuYNcfOhWx9a3P7bot+AOTCXe+gs="
|
APP_DEBUG | "true"
|
APP_LOG_LEVEL | "debug"
|
APP_URL | "https://vietchem.com.vn"
|
DEBUGBAR_ENABLED | "false"
|
DB_CONNECTION | "mysql"
|
DB_HOST | "127.0.0.1"
|
DB_PORT | "3306"
|
DB_DATABASE | "admin_test"
|
DB_USERNAME | "admin_test"
|
DB_PASSWORD | "Vietchem@123"
|
BROADCAST_DRIVER | "log"
|
CACHE_DRIVER | "file"
|
SESSION_DRIVER | "file"
|
QUEUE_DRIVER | "sync"
|
REDIS_HOST | "127.0.0.1"
|
REDIS_PASSWORD | "null"
|
REDIS_PORT | "6379"
|
MAIL_DRIVER | "ses"
|
MAIL_HOST | "mailtrap.io"
|
MAIL_PORT | "2525"
|
MAIL_USERNAME | "null"
|
MAIL_PASSWORD | "null"
|
MAIL_ENCRYPTION | "null"
|
MAIL_FROM_ADDRESS | "no-reply@sudo.vn"
|
MAIL_FROM_NAME | "SudoCMS"
|
SES_REGION | "us-east-1"
|
PUSHER_APP_ID | "" |
PUSHER_APP_KEY | "" |
PUSHER_APP_SECRET | "" |
STORAGE_TYPE | "local"
|