iT邦幫忙

0

PHP字串擷取!!!

php
  • 分享至 

  • xImage

前輩們想問一個小問題,怎麼擷取特殊符號前的字串...

<?php
$testtest = "#軟體部門%TEST-user(text)";

echo $testtest;

?>

想擷取#%特殊符號中間的字元
軟體部門
https://ithelp.ithome.com.tw/upload/images/20180704/20089833WgLfD6tabx.jpg

看更多先前的討論...收起先前的討論...
weiclin iT邦高手 4 級 ‧ 2018-07-04 15:04:17 檢舉
$str = "#軟體部門%TEST-user(text)";
$text = substr($str, 1, strpos($str, "%") - 1);
echo $text;
小哈 iT邦新手 4 級 ‧ 2018-07-05 10:14:23 檢舉
感謝前輩幫忙,沒問題了,感謝^^
小哈 iT邦新手 4 級 ‧ 2018-07-05 10:15:12 檢舉
前輩可以到下面留言嗎?最佳答案~
Homura iT邦高手 1 級 ‧ 2018-07-05 10:20:43 檢舉
不是正則那方法比較好嗎?0.0
而且下面3篇都比較早回...
小哈 iT邦新手 4 級 ‧ 2018-07-05 10:55:00 檢舉
好,立馬更正,拍謝前輩!!!
weiclin iT邦高手 4 級 ‧ 2018-07-05 21:25:41 檢舉
最佳答案給誰都行, 反正都能用, 我只是給你另一個方向參考而已
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
1
㊣浩瀚星空㊣
iT邦大神 1 級 ‧ 2018-07-04 14:09:21
最佳解答
$testtest = "#軟體部門%TEST-user(text)";
        preg_match_all("/#(.*?)%/", $testtest, $data);
        print_r($data);
        echo '<br>data='.$data[1][0];

這是用正則的方式。不過我上面的方式會一次將相關的#.....%全找出來。
可以換用preg_match來處理。

不過我懶的改,自行去研究一下正則吧。

小哈 iT邦新手 4 級 ‧ 2018-07-05 10:16:16 檢舉

前輩OK了,感謝/images/emoticon/emoticon08.gif

建議不要用正規表示式~
/images/emoticon/emoticon10.gif

見仁見智吧。
基本上如果是固定格式的,我也不會使用正則。

用正則的因素是在不規則字串中的某一個規則下才運行的。
這總是也是一種方法。

0
Homura
iT邦高手 1 級 ‧ 2018-07-04 14:01:10

這樣嗎?

$testtest = "#軟體部門%TEST-user(text)";
echo mb_split("%",mb_split("#",$testtest)[1])[0];
小哈 iT邦新手 4 級 ‧ 2018-07-05 10:15:42 檢舉

前輩已經OK,妳的也可以^^/images/emoticon/emoticon08.gif

0

比較省資源的作法,如果考量效益的話~

$testtest = "#軟體部門%TEST-user(text)";
echo trim(mb_split("%",$testtest)[0], '#');
小哈 iT邦新手 4 級 ‧ 2018-07-05 10:16:49 檢舉

前輩你的Code也OK,感謝:)

我要發表回答

立即登入回答