|
|
|
รบกวนเรื่องบันทึก txt ลงดาต้าเบสไม่อยากให้ตัด , แล้วเข้าฟิวส์ใหม่ครับ |
|
|
|
|
|
|
|
คือว่าถ้า เจอเนื้อหาใน txt เช่น wwwwwwwww,testttttttttttt, nnn บราๆๆ อะไรก็แล้วแต่ครับ พอถึงช่วงมี คอมม่า, ขั้น
มันจะบันทึกลง ฟิวส์ใหม่อ่ะครับ แต่ผมอยากให้มันคำแค่ 50 คำแทนแล้วเอา 50 คำบันทึกลง ฟิวส์ในต้าเบสพอครับ
ไม่ต้องสนว่าถ้าเจอ คอมม่า, แล้วไป ฟิวส์ใหม่หรือเรคคอร์ดใหม่อ่ะครับ พอดีว่ามีแค่ฟิวส์เดียว แค่อยากเก็บ
คำบางส่วน เพื่อเอาไว้อ้างอิงไฟล์ต้นฉบับพอครับ
Code (PHP)
<?php
$realname = $_FILES['datafile']['name'];
$file_name = $_FILES['datafile']['tmp_name'];
if (($_FILES["datafile"]["type"] == "text/plain")){
if (is_uploaded_file($file_name))
{
copy($file_name,"upload/".$realname);
$fname = $file_name;
$fh = fopen($fname, "r");
while ( $fline = fgetcsv($fh, "4096", ",") ) {
$db_sql = "INSERT INTO tb_text_read ( filename1 ) VALUES ( '$fline[1]' );";
//$db_sql = "INSERT INTO test_upload ( id, name ) VALUES ( '$fline[0]', '$fline[1]' );";
$db_res = mysql_query($db_sql) or die($db_sql);
$result1="select * from tb_text_read";
$query1 = mysql_query($result1);
while($row2 = mysql_fetch_array($query1)){
echo $row2['filename1'].'';}
}
fclose($fh);
}
}
?>
ต้องเปลี่ยนโค๊ดตรงไหนอ่ะครับ ไม่อยากให้มันขึ้นเรคคอร์ดใหม่ครับกรณีเจอ , หรือ ถ้าไม่มี , ก็ให้ R แล้วบันทึกเลยครับ
ตัดแค่ 100 คำปกติ
Tag : PHP
|
ประวัติการแก้ไข 2014-12-27 12:54:48 2014-12-27 13:23:34 2014-12-27 22:01:17 2014-12-28 01:29:14 2014-12-28 13:47:07 2014-12-28 15:40:17
|
|
|
|
|
Date :
2014-12-27 12:42:19 |
By :
sarut14 |
View :
799 |
Reply :
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
รบกวนหน่อยนะครับ ขอบคุณครับผม
|
|
|
|
|
Date :
2014-12-28 01:29:38 |
By :
sarut14 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ทดสอบข้อมูล
Code (PHP)
27 while ( $fline = fgetcsv($fh, "4096", ",") ) {
$db_sql = "INSERT INTO tb_text_read (id,fulltext,fulltext2) VALUES ('$fline[0]', '$fline[1]','$fline[2]')";
$db_res = mysql_query($db_sql) or die($db_sql);
//print_r($db_res);
//exit;
$query_str1 = "select *from tb_text_read";
$rs1 = mysql_query($query_str1);
while($row = mysql_fetch_array($rs1)){
echo $row['fulltext2'].' ';
}
}
แก้เป็น
Code (PHP)
27 while ( $fline = fgetcsv($fh, "4096", ",") ) {
$db_sql = "INSERT INTO tb_text_read (id,fulltext,fulltext2) VALUES ('$fline[0]', '$fline[1]','$fline[2]')";
echo $db_sql, "\n<br>";
/* มาร์คไว้ก่อน
$db_res = mysql_query($db_sql) or die($db_sql);
//print_r($db_res);
//exit;
$query_str1 = "select *from tb_text_read";
$rs1 = mysql_query($query_str1);
while($row = mysql_fetch_array($rs1)){
echo $row['fulltext2'].' ';
}
//*/
}
หรืออาจต้องใส่ mysql_real_escape_string() กับตัวแปรด้วย เพราะไม่รู้ว่าข้อมูลมีอักษรพิเศษอะไรหรือเปล่า
foreach( $fline as $k=>$vl) $fline[$k]=mysql_real_escape_string($vl);
|
|
|
|
|
Date :
2014-12-28 13:44:57 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อักขระพิเศษ ไม่แน่ใจครับคาดว่าตีไปก่อนว่าไม่มีครับผม พอดียังมีปัญหาเรื่องไฟล์ภาษาไทยแอดแล้วขึ้นต่างด้าว
ตอนนี้ขอแค่แบบว่า แอดได้สัก 100 คำหรือตัดคำธรรมดาก็พอครับ พอดีจะเอาไปใส่ในฟิวส์ ไว้เพื่ออ้างอิงการเสิท
ในเนื้อไฟล์แล้วค้นหาไฟล์ต้นฉบับพอครับ ณ ตอนนี้
มันจะเป็แบบนี้ครับพี่ชัย
แนบไฟล์ Text ----> ตัดคำไม่สนว่าจะมี , เพื่อที่จะไม่ให้มันใส่ไปในอีกฟิวส์หรือขึ้น เรคคอร์ดใหม่ครับ ลงฟิวส์เดียว
--->ได้คำลงเก็บในดาต้าเช่น ccccc,ererererfdfccccc cccc---->ขั้นตอนต่อมาผมอาจจะต้องให้ลงฟิวส์ตรงกับ itemid == id กับไฟล์ต้นฉบับ
เพื่อที่ว่า พอค้นหา cccc จะเจอไฟล์อ่ะครับ ถ้ามันเจอ , มันจะลงเรคคอร์ดใหม่ ถ้าไม่เจอ , มันก็ไม่บรรททึกครับ เหมือนมันจะต้อง
ตัด , เพื่อ array ไว้ก่อน ยิ่งถ้ามี ,หลายๆชั้น มันจะแบ่งยาวเลย กรณีมีฟิวส์เดียวคับ
เดี๊ยวลองแบบพี่ชัยก่อนนะครับว่า เป็นยังไง รบกวนพี่ชัยด้วยนะครับ
|
ประวัติการแก้ไข 2014-12-28 15:33:55
|
|
|
|
Date :
2014-12-28 15:28:14 |
By :
sarut14 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ก็อ่านด้วยคุณสมบัติไฟล์ text ธรรมดา
$data50=fread( $f=fopen('filename', 'r'), 50); fclose($f);
mysql_query( "insert into table ( field1) values( '$data' )' );
|
|
|
|
|
Date :
2014-12-28 16:10:54 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตัวอย่างการใช้ ไฟล์ csv
จาก PHP Document
Code (PHP)
<?php
$row = 1;
$handle = fopen("test.csv", "r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
}
}
fclose($handle);
?>
|
|
|
|
|
Date :
2014-12-28 16:23:30 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอนนี้ติดสองปัญหาหลักเลยครับ รบกวนอีกรอบนะครับ
1. แอดได้แล้วครับ แต่ว่ามันไปลงเรคคอร์สใหม่อยากให้ลง ไอดีเดียวกัน ไอดีไอเทมเดียวกันครับ ตามรูปมันแอดไม่ตรงไฟล์กันครับ
ผมต้องอ้างอิง ดาต้าเบสไงดีคับให้บันทึก ไอดีเดียวกัน
2.มีปัญหากับภาษาไทยครับ พอเนื้อไฟล์ข้างในเป็นไทย มันไม่เรคคอร์สให้ครับ กลับเป็นฟิวส์ว่างๆเลย
3.ถ้าเป็นไฟล์เอกสารอื่นๆเช่น PDF EXEL จะเช็คไงดีครับว่า ถ้าไม่ใช่ไฟล์ txt ก็ให้เซฟไฟล์ปกติตามกระบวนการเค้าเลยครับ
Code (PHP)
if ($handle->uploaded) {
$handle->file_auto_rename = true;
$handle->allowed[] = 'application/x-zip';
$handle->allowed[] = 'application/download';
$handle->Process($savepath);
$filename = $handle->file_dst_name;
//----------------------------------------------------
$realname = $_FILES['attachment_file']['name'][0];
//$filename2 = $_FILES['attachment_file']['tmp_name'][0];
//echo $filename2;
//exit;
//if (($_FILES['attachment_file']['type'][0] == "text/plain")):
$filetmp_name = $_FILES['attachment_file']['tmp_name'][0];
$fname = iconv("TIS-620","UTF-8",$filetmp_name);
$data15= fread($fh = fopen($fname, "r"),15);
//echo "<br>";
//echo $data15;
//exit;
$fline = fgetcsv($data15, "4096" );
$db = JFactory::getDBO();
$db_sql = "INSERT INTO tb_k2_attachments ( keytext ) VALUES ( '$data15' )";
// VALUES (NULL, {intval($tagID)}, {intval($row->id)})";
$db->setQuery($db_sql);
$db->query();
fclose($fh);
//---------------------------------------------------------//
$handle->Clean();
$attachment = &JTable::getInstance('K2Attachment', 'Table');
$attachment->itemID = $row->id;
$attachment->filename = $filename;
$attachment->title = ( empty($attachments_titles[$counter])) ? $filename : $attachments_titles[$counter];
$attachment->titleAttribute = ( empty($attachments_title_attributes[$counter])) ? $filename : $attachments_title_attributes[$counter];
$attachment->store();
} else {
$mainframe->redirect('index.php?option=com_k2&view=items', $handle->error, 'error');
}
}
$counter++;
}
}
|
ประวัติการแก้ไข 2014-12-29 12:56:15 2014-12-29 16:34:25
|
|
|
|
Date :
2014-12-29 12:23:23 |
By :
sarut14 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|