台灣最大程式設計社群網站
線上人數
1414
 
會員總數:246276
討論主題:189811
歡迎您免費加入會員
討論區列表 >> PHP >> 關於php裡面~是否有類似asp的instr的做法
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
關於php裡面~是否有類似asp的instr的做法
價值 : 50 QP  點閱數:3644 回應數:19
樓主

純真的人
中級顧問
38997 127
11932 3912
發送站內信

捐贈 VP 給 純真的人
基於某些原因要將asp網頁轉成php網頁...

我不知道在php裡面,在搜尋原始碼時,是如何比對出字串的位置,並且還可以根據下個位置持續搜尋。
只知道類似函數strlen、strpos、substr去組成一個自定函數..


以上是我自己去模擬出來的,不知道php有沒有這方面類似的函數...

若模擬left跟right以及mid函數...對於substr函數的中文符號判斷好像又有各自解讀...= =a

不能直接下數字取第幾位,會有亂碼...

搜尋相關Tags的文章: [ instr ] ,
本篇文章發表於2011-06-03 10:43
== 簽名檔 ==
個人網站:純真之家-jerwei
暫定網址:http://w3.loxa.com.tw/jer5173
1樓
不錯的參考

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
沒有直接的函數。給你我之前用的額外處理。
不過我這是用在UTF8上。用在其它編碼就不太清楚了。


本篇文章回覆於2011-06-03 10:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
最有價值解答

曼菲士
檢舉此回應
試試這樣

本篇文章回覆於2011-06-03 11:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

曼菲士
檢舉此回應
如果怕編碼錯誤
可以用mb系列的 多了一個編碼參數設定
例如
mb_strpos()
本篇文章回覆於2011-06-03 11:27
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

純真的人
捐贈 VP 給 純真的人 檢舉此回應
喔~可以這樣設定~謝謝呢~
本篇文章回覆於2011-06-03 11:42
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

純真的人
捐贈 VP 給 純真的人 檢舉此回應
那樣有回傳空字串問題,稍為修正一下方式~呵^^"


本篇文章回覆於2011-06-03 11:58
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

曼菲士
檢舉此回應
恩 原來還有沒找到回傳的差異
其實str這系列的函式我很少用
我大多使用正規表示式在操作字串
本篇文章回覆於2011-06-03 12:11
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

純真的人
捐贈 VP 給 純真的人 檢舉此回應
再修正一下~這才正確~當沒有字串傳進去也會錯誤~


我那個操作是要把原來的字串找到關鍵位置後,再重新組合字串的~
本篇文章回覆於2011-06-03 13:35
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

純真的人
捐贈 VP 給 純真的人 檢舉此回應
附註...因為不能使用str_replace因為這個會把字串內容全都變更^^"
本篇文章回覆於2011-06-03 13:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
回應

曼菲士
檢舉此回應

本篇文章回覆於2011-06-09 11:35
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
作者回應

純真的人
捐贈 VP 給 純真的人 檢舉此回應
#9
喔喔~又學到一招方式了~感謝^^

其實inStr函數用在很多地方,不過PHP應該也有他專屬的處理方式~

像在ASP抓指定位置儲存也是~

本篇文章回覆於2011-06-09 15:29
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
回應

曼菲士
檢舉此回應
是這樣嗎?
<pre lang="php"> $ss = ' <link>AAA</link> <link>BBB</link> <link>CCC</link> <link>DDD</link> '; preg_match_all('/<(link)>.*?<\/\1>/', $ss, $matchs2); echo '
', print_r($matchs2[0], 1), '';

</pre>
本篇文章回覆於2011-06-09 16:17
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
回應

曼菲士
檢舉此回應
我又忘了不能用
<pre lang="php">
$ss = '
<link>AAA</link>
<link>BBB</link>
<link>CCC</link>
<link>DDD</link>
';
preg_match_all('/<(link)>.*?<\/\1>/', $ss, $matchs2);
print_r($matchs2[0]);


本篇文章回覆於2011-06-09 16:18
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
回應

曼菲士
檢舉此回應
一"一

本篇文章回覆於2011-06-09 16:18
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
14樓
回應

曼菲士
檢舉此回應
應該這樣

本篇文章回覆於2011-06-09 16:20
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
15樓
作者回應

純真的人
捐贈 VP 給 純真的人 檢舉此回應
因為我不想改到asp寫的方式~所以那段因為已經模擬asp的left,right,mid,instr

我寫法是變成這樣的^^"


那是去抓RSS裡面的新聞~
本篇文章回覆於2011-06-09 16:25
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   

回覆
如要回應,請先登入.