ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comความรู้ทั่วไปGeneral (ถามคุยวิชาการ IM)php ถ้าต้องการตัดตัดคำที่อยู่ระหว่างสองคำที่กำหนดไว้ ทำอย่างไรครับ?
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: php ถ้าต้องการตัดตัดคำที่อยู่ระหว่างสองคำที่กำหนดไว้ ทำอย่างไรครับ?  (อ่าน 577 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
Adison1980
Newbie
*

พลังน้ำใจ: 1
ออฟไลน์ ออฟไลน์

กระทู้: 23



ดูรายละเอียด
« เมื่อ: 07 กรกฎาคม 2018, 11:09:29 »

สวัสดีครับขออนุญาติถามว่า ถ้าเราต้องการตัดคำที่อยู่ระหว่าง ตัวอักษรที่เราเลือกไว้ต้องใช้คำสั่งตัวไหนของ php ครับ ผมค้นจากหลายเว็บเจอแต่ตัดคำหน้าเเละคำหลัง
---
คือผมมีข้อมูลยาวๆแบบนี้ครับ แล้วในนั้นผมต้องการให้มันค้นหาคำที่ขึ้นต้นด้วย /data/attachment/forum และลงท้ายด้วย .jpg

จากนั้นก็แสดงผลออกมาเจอกี่ตัวก็เเสดงผลออกมาที่ละบันทัด รบกวนขอแนวทางหน่อยครับ เดี๋ยวผมไปศึกษาต่อ

อันนี้ข้อมูลดิบครับ (ที่ตัวหนาคือจุดเริ่มต้นและสุดท้ายที่ต้องการตัด)

อ้างถึง
<ignore_js_op>

<img style="cursor:pointer" id="aimg_25231937" aid="25231937" src="/data/attachment/forum/201806/27/054z.jpg" onclick="zoom(this, this.getAttribute('zoomfile'), 0, 0, '0')" zoomfile="/data/attachment/forum/201806/27/054302lgqcp5s5h0z5cqcz.jpg" file="/data/attachment/forum/201806/27/054302lgqcp5s5h0z5cqcz.jpg" inpost="1" alt="Manclub_632.jpg" title="Manclub_632.jpg" onmouseover="showMenu({'ctrlid':this.id,'pos':'12'})" initialized="true">

<div class="tip tip_4 aimg_tip" id="aimg_25231937_menu" style="position: absolute; z-index: 301; left: 104.5px; top: 80019.6px; display: none;" initialized="true">
<div class="tip_c xs0">
<div class="y">

2018-6-27 05:43 </div>
<a onclick="javascript: showWindow('czw_attachAD','plugin/?id=czw_attachAD:ad&amp;aid=MjUyMzE5Mzd8MjdmMzYyOGR8MTUzMDg4Njk0MHwwfDkxMzk2NTQ%3D&amp;nothumb=yes');return false;" href="forum.php?mod=attachment&amp;aid=MjUyMzE5Mzd8MjdmMzYyOGR8MTUzMDg4Njk0MHwwfDkxMzk2NTQ%3D&amp;nothumb=yes" title="Manclub_632.jpg :" target="_blank"><strong></strong> <span class="xs0">(2.78 MB)</span></a>

</div>
<div class="tip_horn"></div>
</div>

</ignore_js_op>
<br>
<br>

แล้วให้มันแสดงผลลัพธ์ออกมาประมาณนี้ครับ

/data/attachment/forum/201806/27/054302lgqcp5s5h0z5cqcz.jpg
มีกี่ตัวก็แสดงผลออกมาหมด

ใครพอแนะนำคร่าวๆได้บ้างครับ ผมค้นทุกเว็บละยังไม่เจออันที่ใกล้เคียงกับของผมเลย
บันทึกการเข้า
p44n
Verified Seller
สมุนแก๊งเสียว
*

พลังน้ำใจ: 105
ออฟไลน์ ออฟไลน์

กระทู้: 674



ดูรายละเอียด
« ตอบ #1 เมื่อ: 07 กรกฎาคม 2018, 11:36:55 »

สร้างไฟล์ php แล้วรัน code ด้านล่างครับ
1.ใช้แนวคิดแยกคำออกมาเป็น array เพราะอาจจะเจอหลายจุด
2.ค้นหาและตัดคำที่ต้องการ

โค๊ด:
$test_text=' src="/data/attachment/forum/201806/27/054z.jpg" "/data/attachment/forum/201806/27/054302lgqcp5s5h0z5cqcz.jpg" file="/data/attachment/forum/201806/27/054302lgqcp5s5h0z5cqcz.jpg" ';
$pre="/data/attachment/forum/";
$sub=".jpg";

echo "<pre>";
print_r(sss($pre,$sub,$test_text));

function sss($pre,$sub,$test_text){
$arr=explode($pre,$test_text);
if(count($arr)>0){
for($i=0;$i<count($arr);$i++){
$pos=strpos($arr[$i],$sub);
if($pos>0){
$results[]=$pre.substr($arr[$i],0,$pos).$sub;
}
}
}
return $results;
}
บันทึกการเข้า

Python, PHP OOP, MVC CodeIgniter, MongoDB, MySQL, MsSQL ,CSS Tableless, Responsive Design, Cross-platform, Javascript, jQuery, AngularJS, NodeJS,  Fackbook API, Paypal API, Paysbuy API, Omise API, Google Map API, C# Window Applications, .NET Framework, JAVA (Android Developer, JSP), Hybrid Application with Cordova + Ionic Framework
Adison1980
Newbie
*

พลังน้ำใจ: 1
ออฟไลน์ ออฟไลน์

กระทู้: 23



ดูรายละเอียด
« ตอบ #2 เมื่อ: 07 กรกฎาคม 2018, 16:20:42 »

สร้างไฟล์ php แล้วรัน code ด้านล่างครับ
1.ใช้แนวคิดแยกคำออกมาเป็น array เพราะอาจจะเจอหลายจุด
2.ค้นหาและตัดคำที่ต้องการ



อ้างถึง
<form >
<input type="text" name="fname" />
<input type="submit" />
</ form>

<?php
       
$test_text = $_GET['fname'];
$pre="/data/attachment/forum/";
$sub=".jpg";

echo "<pre>";
print_r(sss($pre,$sub,$test_text));

function sss($pre,$sub,$test_text){
   $arr=explode($pre,$test_text);
   if(count($arr)>0){
      for($i=0;$i<count($arr);$i++){
         $pos=strpos($arr[$i],$sub);
         if($pos>0){
            $results[]=$pre.substr($arr[$i],0,$pos).$sub;
         }
      }
   }
   return $results;
}


ผมลองอเด็ปเพิ่มให้มันใช้จาก input อื่นๆ แต่มันไม่ได้อ่ะครับ นี่งงนิดๆ
บันทึกการเข้า
infamous
ก๊วนเสียว
*

พลังน้ำใจ: 14
ออฟไลน์ ออฟไลน์

กระทู้: 301



ดูรายละเอียด
« ตอบ #3 เมื่อ: 07 กรกฎาคม 2018, 23:30:25 »

มันไม่ได้ยาก และซับซ้อนขนาดนั้นครับ

โค๊ด:
<?php

$string 
'zoomfile="/data/attachment/forum/201806/27/054302lgqcp5s5h0z5cqcz.jpg" file="/data/attachment/forum/201806/27/054302lgqcp5s5h0z5cqcz.jpg"';

preg_match_all("/\/data\/attachment\/forum(.*?)\.jpg/"$string$matches);

echo 
"<pre>";
var_dump(array_unique($matches[0]));
บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์