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

HOME > PHP > PHP Forum > อยากทราบตัวอย่างcode PHP ตัดคำนำหน้าชื่อ ชื่อและนามสกุลออกจากกันค่ะ ลองใช้ split,trimแล้วค่ะแต่ก้ยังตัดไม่ได้ตัวอย่างชื่อ ดร. ภรณี สุทธิวานิช ค่ะจะตัดได้อย่างไรคะ



 

อยากทราบตัวอย่างcode PHP ตัดคำนำหน้าชื่อ ชื่อและนามสกุลออกจากกันค่ะ ลองใช้ split,trimแล้วค่ะแต่ก้ยังตัดไม่ได้ตัวอย่างชื่อ ดร. ภรณี สุทธิวานิช ค่ะจะตัดได้อย่างไรคะ

 



Topic : 077815

Guest




อยากทราบตัวอย่างcode PHP ตัดคำนำหน้าชื่อ ชื่อและนามสกุลออกจากกันค่ะ ลองใช้ split,trimแล้วค่ะแต่ก้ยังตัดไม่ได้ตัวอย่างชื่อ ดร. ภรณี สุทธิวานิช ค่ะจะตัดได้อย่างไรคะ



Tag : PHP







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2012-05-01 12:33:53 By : อุ๊ป View : 8116 Reply : 18
 

 

No. 1



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

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

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


https://www.thaicreate.com/php/forum/016209.html






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-01 12:54:02 By : sakuraei
 


 

No. 2

Guest


ไม่ค่อยเข้าใจโค้ดค่ะ ช่วยอธิบายหรือมีโค้ดที่เข้าใจง่ายกว่านี้มั้ยคะ
ขอบคุณค่ะCode (PHP)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-01 14:00:55 By : oop
 

 

No. 3



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

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

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


Code (PHP)
// กำหนดคำนำหน้าไว้ก่อน ว่าต้องการตัดสรรพนามอะไรบ้าง 

$prefix_utf8["ว่าที่ รต."]=26;  // นับอักขระไทยได้ 8 ตัว คูณด้วย 3 = 24 บวกกับช่องว่าง และ จุด(.) อีก 2 รวมเป็น 26
$prefix_utf8["ว่าที่ร้อยตรี"]=39;
$prefix_utf8["นาย"]=9;
$prefix_utf8["นาง"]=9;
$prefix_utf8["นางสาว"]=18;
$prefix_utf8["น.ส."]=8;
$prefix_utf8["ดร."]=7;

$index =1;

// เพิ่มโค้ดในส่วนของการติดต่อ ฐานข้อมูล ที่นี่ครับ

$sql = "select name from sometable ";
$res = mysql_query($sql) or die(mysql_error());

while($fullname_utf8 = mysql_fetch_row($res)){;}

// ส่งเข้าไปเพื่อตัดแยก องค์ประกอบ ออกเป็น คำนำหน้า ชื่อ นามสกุล
foreach($fullname_utf8 as $individual){
	foreach($prefix_utf8 as $key => $keylength){
		if(strstr($individual , $key)){			
			$output[$index]["title"] = substr($individual,0,$keylength);
			$individual = substr($individual,$keylength);
			list($output[$index]["firstName"],$output[$index]["lastName"]) = explode(" ",trim($individual));
		}
	}
	$index++;
}

// ลองพิมพ์ผลลัพธ์ที่ได้ จาก อาร์เรย์ $output
print_r($output);




ทดสอบดูก่อนครับ แล้วค่อยกลับมาถาม

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-01 14:15:04 By : sakuraei
 


 

No. 4

Guest


Warning: Invalid argument supplied for foreach() in C:\AppServ\www\compsurvey\untitled.php on line 50
มัน error คะ



<?php
require_once 'inc_db.php';

$sql = "SELECT * FROM test_name";


$result = mysql_query($sql);
if(!$result)
{
die('Error1!' . mysql_error());
}
?>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<?php
$prefix_utf8["ว่าที่ รต."]=26; // นับอักขระไทยได้ 8 ตัว คูณด้วย 3 = 24 บวกกับช่องว่าง และ จุด(.) อีก 2 รวมเป็น 26
$prefix_utf8["ว่าที่ร้อยตรี"]=39;

$prefix_utf8["นาย"]=9;

$prefix_utf8["นาง"]=9;

$prefix_utf8["นางสาว"]=18;

$prefix_utf8["น.ส."]=8;

$prefix_utf8["ดร."]=7;



$index =1;



// เพิ่มโค้ดในส่วนของการติดต่อ ฐานข้อมูล ที่นี่ครับ




while($fullname_utf8 = mysql_fetch_row($result)){;}



// ส่งเข้าไปเพื่อตัดแยก องค์ประกอบ ออกเป็น คำนำหน้า ชื่อ นามสกุล
foreach($fullname_utf8 as $individual){

foreach($prefix_utf8 as $key => $keylength){

if(strstr($individual , $key)){

$output[$index]["title"] = substr($individual,0,$keylength);

$individual = substr($individual,$keylength);

list($output[$index]["firstName"],$output[$index]["lastName"]) = explode(" ",trim($individual));

}

}

$index++;

}



// ลองพิมพ์ผลลัพธ์ที่ได้ จาก อาร์เรย์ $output

print_r($output);
?>
</body>
</html>
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-01 14:38:49 By : oop
 


 

No. 5



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

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

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


require_once 'inc_db.php';

$sql = "SELECT name FROM test_name";

....
......

while($fullname_utf8[] = mysql_fetch_row($result)){;}

//ขอแก้ไขเพิ่มเติมในส่วนนี้น่ะครับ

// ส่งเข้าไปเพื่อตัดแยก องค์ประกอบ ออกเป็น คำนำหน้า ชื่อ นามสกุล
foreach($fullname_utf8 as $individual){

foreach($prefix_utf8 as $key => $keylength){

if(strstr($individual[0] , $key)){

$output[$index]["title"] = substr($individual[0],0,$keylength);

$individual[0] = substr($individual[0],$keylength);

list($output[$index]["firstName"],$output[$index]["lastName"]) = explode(" ", trim($individual[0] ));

}

}

$index++;

}


ประวัติการแก้ไข
2012-05-01 15:03:27
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-01 14:56:48 By : sakuraei
 


 

No. 6

Guest


Array ( [1] => Array ( [title] => นาง [lastName] => รัศมีเทวโชต [firstName] => สาวจารุภา ) [2] => Array ( [title] => นาย [lastName] => มงคลวิทย์ [firstName] => ประพงษ์ ) [3] => Array ( [title] => นาย [lastName] => ไชยูปถัมภ์ [firstName] => บเสริมพงษ์ ) [4] => Array ( [title] => นาย [lastName] => เผนานนท์ [firstName] => เฉลิม ) [5] => Array ( [title] => น.ส. [lastName] => โชติขันธ์ [firstName] => ธิดารัตน์ ) [6] => Array ( [title] => นาง [lastName] => [firstName] => สาวเอริสา ) [7] => Array ( [title] => น.ส. [lastName] => [firstName] => ภรณี ) [8] => Array ( [title] => น.ส. [lastName] => ยังแหยม [firstName] => ยุพิน ) [9] => Array ( [title] => นาง [lastName] => แสงบุญ [firstName] => สาวนฤมล ) [10] => Array ( [title] => ดร. [lastName] => สุทธิวานิช [firstName] => ภรณี ) [11] => Array ( [title] => ว่าที่ร้อยตรี [lastName] => ก่องอนันต์วิทย์ [firstName] => พิศมัย ) [12] => Array ( [title] => นาง [lastName] => สมชื่อ [firstName] => อังคณา ) [13] => Array ( [title] => นาย [lastName] => ศรีสกุลส์ [firstName] => ชาญชัย ) [14] => Array ( [title] => นาย [lastName] => ภาณุรัตน์ [firstName] => บุญยงค์ ) [15] => Array ( [title] => ว่าที่ รต. [lastName] => ม่วงแพรศรี [firstName] => ประพุทธ ) [16] => Array ( [title] => ว่าที่ รต. [lastName] => แสงบุญ [firstName] => นฤมล ) [17] => Array ( [title] => ว่าที่ร้อยตรี [lastName] => เปลื้อง [firstName] => ชัยทัศ ) [18] => Array ( [title] => นาย [lastName] => [firstName] => อัชวรรณ ) )

ผล output บางตัวผิดอะคะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-01 15:20:15 By : oop
 


 

No. 7



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

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

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


อาจต้องสลับกันนิดนึงครับ เอา "นางสาว" ขึ้นมาบรรทัดบนก่อน "นาง" ครับ

$prefix_utf8["ว่าที่ รต."]=26;
$prefix_utf8["ว่าที่ร้อยตรี"]=39;
$prefix_utf8["นาย"]=9;
$prefix_utf8["นางสาว"]=18;
$prefix_utf8["นาง"]=9;
$prefix_utf8["น.ส."]=8;
$prefix_utf8["ดร."]=7;


ประวัติการแก้ไข
2012-05-01 15:29:19
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-01 15:28:04 By : sakuraei
 


 

No. 8



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

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

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


ถ้ามีชื่อ "นางสาวิตรี" ไม่รู้ผลจะเป็นยังไง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-01 15:46:37 By : sakuraei
 


 

No. 9

Guest


ว่าที่ร้อยตรีชัยทัศ เปลื้อง ณ ทับเที่ยง นามสกุลแบบนี้คะพอเวลาตัดคำแล้วมันแยกออกเป็น
คำว่าเปลื้อง



ทับเที่ยง

แบบนี้คะจะแก้ไขยังไงคะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-01 15:51:04 By : อุ๊ป
 


 

No. 10



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

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

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


list($output[$index]["firstName"],$output[$index]["lastName"]) = explode(" ",trim($individual[0]));

เปลี่ยนเป็น


$output[$index] = explode(" ",trim($individual[0]));
$fname = $output[$index][0];
$shift_name = array_shift($output[$index]);
$lname = implode(" ",$output[$index]);

ชื่อจะอยู่ที่ $fname และนามสกุลจะอยู่ที่ $lname ส่วนคำนำหน้าจะยังคงอยู่ที่ $output[$index]["title"]


ลองดูน่ะครับ ประติดประต่อเอาหน่อย ถ้ามีเวลาผมจะมาทำต่อให้


ประวัติการแก้ไข
2012-05-01 16:05:34
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-01 16:04:27 By : sakuraei
 


 

No. 11



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

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

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


Code (PHP)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title>https://www.thaicreate.com/php/forum/077815.html</title>
  <meta name="Generator" content="EditPlus">
  <meta name="Author" content="Unidentifier">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <script src="http://code.jquery.com/jquery-latest.js"></script>
 </head>

 <body>
  <?php

$prefix_utf8["ว่าที่ รต."]=26;
$prefix_utf8["ว่าที่ร้อยตรี"]=39;
$prefix_utf8["นาย"]=9;
$prefix_utf8["น.ส."]=8;
$prefix_utf8["นางสาว"]=18;
$prefix_utf8["นาง"]=9;
$prefix_utf8["ศ.ดร."]=11;
$prefix_utf8["ดร."]=7;
$prefix_utf8["นาวาอากาศตรี"]=36;

/*foreach($prefix_utf8 as $key => $val){
	echo "key[$key] key.length = ".strlen($key)."<br />\n";
}*/
include("connect.php");
/*
CREATE TABLE `names` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `fullname` varchar(150) collate utf8_unicode_ci default NULL,
  PRIMARY KEY  (`id`),
  KEY `fullname` (`fullname`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; 

INSERT INTO `names` VALUES (1, 'ว่าที่ รต. ประพุทธ ม่วงแพรศรี'),(2, 'ว่าที่ รต.นฤมล แสงบุญ'),(3, 'ว่าที่ร้อยตรีชัยทัศ ทับเที่ยง'),(4, 'นาย อัชวรรณ อุทัยรังษี'),(5, 'ดร.นารีรัตน์ อิทธิเดช'),(6, 'นาวาอากาศตรีวรสิทธิ์ เดชกุลชร ณ ระนอง'),(7, 'ดร.ชัยวัตร เชียงใหม่ ณ อยุธยา'),(8, 'ศ.ดร.เอกสิทธิ์ เทพหัสดิน ณ อยุธยา')
*/

$sql = "SELECT fullname FROM names";
$result = mysql_query($sql) or die(mysql_error());
$index =1;


while($fullname_utf8[] = mysql_fetch_row($result)){;}

foreach($fullname_utf8 as $individual){
	foreach($prefix_utf8 as $key => $keylength){
		if(strstr($individual[0] , $key)){			
			$title[] = substr($individual[0] ,0,$keylength);

			$individual[0] = substr($individual[0],$keylength);
			
			$output[$index] = explode(" ",trim($individual[0]));

			$fname[] = $output[$index][0];
			array_shift($output[$index]);
			$lname[] = implode(" ",$output[$index]);
		}
	}
	$index++;
}

for($i=0;$i<count($title); $i++){
	echo $title[$i]."||".$fname[$i]."||".$lname[$i]."<br />\n";
}
  ?>
 </body>
</html>


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-01 21:23:02 By : sakuraei
 


 

No. 12



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

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

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


ผลลัพธ์

ศ.ดร.||เอกสิทธิ์||เทพหัสดิน ณ อยุธยา
ดร.||ชัยวัตร||เชียงใหม่ ณ อยุธยา
ดร.||นารีรัตน์||อิทธิเดช
ว่าที่ รต.||ประพุทธ||ม่วงแพรศรี
ว่าที่ รต.||นฤมล||แสงบุญ
ว่าที่ร้อยตรี||ชัยทัศ||ทับเที่ยง
นาวาอากาศตรี||วรสิทธิ์||เดชกุลชร ณ ระนอง
นาย||อัชวรรณ||อุทัยรังษี
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-01 21:31:04 By : sakuraei
 


 

No. 13

Guest


ขอบคุณค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-02 09:32:26 By : อุ๊ป
 


 

No. 14



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



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


ถ้าเก็บข้อมูลใน DB แยกฟิลด์ เก็บคำนำหน้าชื่อเลยดีกว่า ง่ายดีครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-02 15:11:59 By : keng_ds
 


 

No. 15

Guest


อันนี้ก็น่าจะได้นะครับ
https://www.thaicreate.com/php/php-explode.html
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-02 16:13:08 By : Ve
 


 

No. 16



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

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

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


ตอบความคิดเห็นที่ : 15 เขียนโดย : Ve เมื่อวันที่ 2012-05-02 16:13:08
รายละเอียดของการตอบ ::
ตื้นไปครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-02 16:15:11 By : sakuraei
 


 

No. 17

Guest


$name = นายสมเดช
echo preg_replace("@(^นาย)|(^นาง)|(^น.ส.)@",'',$name);
ผลลัพย์ สมเดช
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2024-07-01 20:14:44 By : ชิน
 


 

No. 18



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



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


Code (PHP)
$names = [
    'จอยบอย',
    'ศ.ดร. เอกสิทธิ์ อิทธิเดช',
    'ศ.ดร. เอกสิทธิ์ เทพหัสดิน ณ อยุธยา',
    'นาวาอากาศตรี วรสิทธิ์ เดชกุลชร ณ ระนอง',
    'นาย อัชวรรณ อุทัยรังษี',
    'ซาร่า คอนเนอร์',
];

function displayNameParts($name)
{
    // normalize spaces.
    $name = preg_replace('/(\h{2,})/', ' ', $name);
    $nameParts = explode(' ', $name);
    if (count($nameParts) <= 1) {
        $prefix = '';
        $firstName = $nameParts[0];
        $lastName = '';
    } elseif (count($nameParts) < 3) {
        $prefix = '';
        $firstName = ($nameParts[0] ?? '');
        unset($nameParts[0]);
        $lastName = implode(' ', $nameParts);
    } else {
        $prefix = $nameParts[0];
        $firstName = ($nameParts[1] ?? '');
        unset($nameParts[0], $nameParts[1]);
        $lastName = implode(' ', $nameParts);
    }
    
    echo 'prefix: ' . $prefix . '<br>';
    echo 'first name: ' . $firstName . '<br>';
    echo 'last name: ' . $lastName . '<br>';
}


// loop test names
foreach ($names as $name) {
    displayNameParts($name);
    echo '<br>';
}

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2024-07-02 13:28:46 By : mr.v
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : อยากทราบตัวอย่างcode PHP ตัดคำนำหน้าชื่อ ชื่อและนามสกุลออกจากกันค่ะ ลองใช้ split,trimแล้วค่ะแต่ก้ยังตัดไม่ได้ตัวอย่างชื่อ ดร. ภรณี สุทธิวานิช ค่ะจะตัดได้อย่างไรคะ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 04
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 อัตราราคา คลิกที่นี่