看板 PHP 關於我們 聯絡資訊
看網路上有些CMS,都會有把網址轉靜態的模組 大概是這樣 $urlin=array(); $urlout=array(); return preg_replace($urlin,$urlout,$url); 我比較好奇的是這些模組的例子 $urlin= array( "'(?<!/)modules.php\?name=Forum....'", ....) 裡面的 (?<!/) ,一般來說被()包圍起來的不是要拿來引用裡面的值嗎? 為何$1卻不是這個值呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.218.220.74
MrSixty9:它前後不是被引號包住了嗎?"...."中間內容都當成一般字串 05/28 16:40
完整的是 "'(?<!/)modules.php\?name=Forums&file=viewtopic&t=([0-9]*)&start =([0-9]*)&postdays=([0-9]*)&postorder=(desc|asc)&highlight=([A-Za-z0-9_-]*)'", ,後面被包起來的就會被引用,所以應該不是這個原因吧?
arrack:看不懂你的問題... 05/28 20:17
簡單的說...就是(?<!/)在preg_replace函裡 似乎是一種特殊的表示法,而不屬於比對項目 ※ 編輯: JYHuang 來自: 210.64.83.218 (05/29 00:11)
arrack:http://www.php.net/manual/en/ 05/29 02:05
arrack:regexp.reference.subpatterns.php 自行連接 05/29 02:05
arrack:跟 05/29 02:10
arrack:regexp.reference.assertions.php 就是你要的答案 05/29 02:10
JYHuang:感謝 05/29 03:20