Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,038

HOME > PHP > PHP Forum > ใช้ explode แล้วไม่เจอค่าที่ต้องการจะ error อยากทราบวิธีแก้ไขหน่อยครับ


[PHP] ใช้ explode แล้วไม่เจอค่าที่ต้องการจะ error อยากทราบวิธีแก้ไขหน่อยครับ

 
Topic : 136717



โพสกระทู้ ( 40 )
บทความ ( 0 )



สถานะออฟไลน์



คือต้องการแยกระหว่าง URL น่ะครับ
เช่น http://domain.com/sub1?id=123 อันนี้ก็จะแยกได้ปกติเป็น http://domain.com/sub1 และ id=123
แต่ถ้าเกิด URL ต้นทางมันเป็น http://domain.com/sub2 อย่างเดียว มันจะแสดง error แบบนี้มาครับ
Warning: Undefined array key 1

อยากทราบว่าต้องแก้ไขที่ตรงไหนหรอครับ ขอบคุณครับ

Code (PHP)
1.<?php
2.    $message = $_SERVER['REQUEST_URI'] ;
3.    $e = explode("?", $message);
4.    echo "url1 = ".$e[0];
5.    echo "<br/>";
6.    echo "url2 = ".$e[1];
7.?>




Tag : PHP



ประวัติการแก้ไข
2022-06-16 21:02:48
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2022-06-16 21:02:29 By : closedtoone View : 561 Reply : 2
 

 
ก่อนใช้ $e[1] ก็ต้องเช็คค่าก่อนว่ามีอยู่หรือไม่
จะใช้ isset หรือ empty, ... ก็ว่าไป
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-06-16 21:15:57 By : 009
 

 

No. 2



โพสกระทู้ ( 4,765 )
บทความ ( 8 )



สถานะออฟไลน์


Quote:
Undefined array key

Quote:
คีย์อาร์เรย์ที่ไม่ได้กำหนด


ตัวอย่างที่จะทำให้เกิด error นี้

Code (PHP)
1.$array = [
2.    'region' => 'Asia',
3.];
4.$array['country'];// error
5. 
6.$numbers = [0, 3, 4];
7.$numbers[4];// error เพราะมีแค่ 0 (0), 1 (3), 2 (4)


วิธีป้องกัน ใช้ได้ทั้ง isset(), array_key_exists() ตามจุดประสงค์ที่แตกต่างกันไป
ตัวอย่าง

Code (PHP)
01.$array = [
02.    0 => '',
03.    1 => false,
04.    2 => true,
05.    3 => null,
06.    4 => [],
07.    5 => new \stdClass(),
08.];
09. 
10. 
11.var_dump(isset($array[0]));// true
12.var_dump(isset($array[1]));// true
13.var_dump(isset($array[2]));// true
14.var_dump(isset($array[3]));// false
15.var_dump(isset($array[4]));// true
16.var_dump(isset($array[5]));// true
17.var_dump(isset($array[99]));// false
18. 
19.echo '<hr>' . PHP_EOL;
20. 
21.var_dump(array_key_exists(0, $array));// true
22.var_dump(array_key_exists(1, $array));// true
23.var_dump(array_key_exists(2, $array));// true
24.var_dump(array_key_exists(3, $array));// true
25.var_dump(array_key_exists(4, $array));// true
26.var_dump(array_key_exists(5, $array));// true
27.var_dump(array_key_exists(99, $array));// false


ให้สังเกตุเอาให้ดีๆ มันจะมีความต่างกันอยู่.

ทีนี้การใช้ ถ้าจะใช้ isset() มันจะมีคำสั่งเต็มแบบนี้
Code (PHP)
1.if (isset($array[1])) {
2.    echo $array[1];
3.} else {
4.    echo '';
5.}

กับคำสั่งบรรทัดเดียว
Code (PHP)
1.echo (isset($array[1]) ? $array[1] : '');

และคำสั่งบรรทัดเดียวสำหรับ PHP 7+ ที่เรียกว่า Null coalescing.
Code (PHP)
1.echo ($array[1] ?? '');

ทั้ง 3 แบบข้างบนนี้มีค่าเท่ากันทำงานเหมือนกัน

parse_url()
ถ้าจะทำงานกับ URL แนะนำให้ใช้ฟังก์ชั่นนี้จะดีกว่า เพราะมันสำหรับงานนี้โดยตรง.
parse_url()

ให้ดูเอกสารประกอบ.
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-06-16 22:34:39 By : mr.v
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ใช้ explode แล้วไม่เจอค่าที่ต้องการจะ error อยากทราบวิธีแก้ไขหน่อยครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)





ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2025 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่