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,027

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



 

ใช้ 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)
<?php
    $message = $_SERVER['REQUEST_URI'] ;
    $e = explode("?", $message);
    echo "url1 = ".$e[0];
    echo "<br/>";
    echo "url2 = ".$e[1];
?>




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 : 398 Reply : 2
 

 
ก่อนใช้ $e[1] ก็ต้องเช็คค่าก่อนว่ามีอยู่หรือไม่
จะใช้ isset หรือ empty, ... ก็ว่าไป






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-06-16 21:15:57 By : 009
 


 

No. 2



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



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


Quote:
Undefined array key

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


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

Code (PHP)
$array = [
    'region' => 'Asia',
];
$array['country'];// error 

$numbers = [0, 3, 4];
$numbers[4];// error เพราะมีแค่ 0 (0), 1 (3), 2 (4)


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

Code (PHP)
$array = [
    0 => '',
    1 => false,
    2 => true,
    3 => null,
    4 => [],
    5 => new \stdClass(),
];


var_dump(isset($array[0]));// true
var_dump(isset($array[1]));// true
var_dump(isset($array[2]));// true
var_dump(isset($array[3]));// false
var_dump(isset($array[4]));// true
var_dump(isset($array[5]));// true
var_dump(isset($array[99]));// false

echo '<hr>' . PHP_EOL;

var_dump(array_key_exists(0, $array));// true
var_dump(array_key_exists(1, $array));// true
var_dump(array_key_exists(2, $array));// true
var_dump(array_key_exists(3, $array));// true
var_dump(array_key_exists(4, $array));// true
var_dump(array_key_exists(5, $array));// true
var_dump(array_key_exists(99, $array));// false


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

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

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

และคำสั่งบรรทัดเดียวสำหรับ PHP 7+ ที่เรียกว่า Null coalescing.
Code (PHP)
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 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

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