Asked Nov 7th, 2020 5:28 AM 178 0 2
  • 178 0 2
0

Cách kiểm tra chuỗi có từ bắt đầu bằng dấu @ trong PHP

Share
  • 178 0 2

Mình muốn kiểm tra chuỗi để xử lý bất kỳ từ nào bắt đầu bằng dấu @.

$string = "Hello, I am @Tom . I'm a cat. This is @Jerry .";  //trường hợp 1
$string = "Hello, this is <a href='https://website.com/user/Tom'>@Tom</a>"; //trường hợp 2
$string = "Hello, my email is [email protected]"; //trường hợp 3

Làm sao để mình chỉ thu được kết quả như ở trường hợp 1, còn trường hợp 2 và 3 thì bỏ qua. preg_match('@', $string) dường như không ổn.

(Mục đích cuối cùng là khi người dùng gõ văn bản có dấu @Nickname thì sẽ chuyển thành đường link dẫn tới tài khoản đã đăng kí.)

Oh! Chữ Nickname ở trên đã chuyển sang dạng link, y như cái mong đợi.

Test email: [email protected]

Dr Dokkan @dokkan7
Nov 7th, 2020 6:40 AM

Mình dùng

$text = preg_replace("/@([A-Za-z0-9\/\.]*)/", "<a target=\"_new\" href=\"http://website.com/user/$1\">@$1</a>", $string);
echo $text;

Nhưng không loại được trường hợp dấu @ nằm ở giữa từ ví dụ như trong email.

+1
| Reply
Share

2 ANSWERS


Answered Nov 9th, 2020 9:38 AM
Accepted
+4

Theo mình hiểu thì bạn muốn match @nickname chỉ khi trước @ không phải là một ký tự nào đó (mà phải là whitespace) đúng không nhỉ 😄

Bạn thử cách này xem sao nhé, mình cũng chỉ sửa lại một chút từ cách làm trong comment của bạn thôi 😃

function replaceMention($string) {
    // Replace nếu string bắt đầu bằng @   
    $string = preg_replace("/^@([A-Za-z0-9\/\.]*)/", "<a target=\"_new\" href=\"http://website.com/user/$1\">@$1</a>", $string);
    // Replace trong các trường hợp @ nằm bên trong văn bản, và phía trước nó phải là ký tự thuộc kiểu whitespace
    $string = preg_replace("/(\s)@([A-Za-z0-9\/\.]*)/", "$1<a target=\"_new\" href=\"http://website.com/user/$2\">@$2</a>", $string);    
    return $string;
}

$string1 = "Hello, I am @Tom. I'm a cat. This is @Jerry.";
$string2 = "Hello, this is <a href='https://website.com/user/Tom>@Tom</a>";
$string3 = "Hello, my email is [email protected]";
$string4 = "@Tom: hello, are you @Jerry?";
echo replaceMention($string1) . "\n";
echo replaceMention($string2) . "\n";
echo replaceMention($string3) . "\n";
echo replaceMention($string4) . "\n";

Output

Hello, I am <a target="_new" href="http://website.com/user/Tom.">@Tom.</a> I'm a cat. This is <a target="_new" href="http://website.com/user/Jerry.">@Jerry.</a>
Hello, this is <a href='https://website.com/user/Tom>@Tom</a>
Hello, my email is [email protected]
<a target="_new" href="http://website.com/user/Tom">@Tom</a>: hello, are you <a target="_new" href="http://website.com/user/Jerry">@Jerry</a>?

Bạn thử lại xem có ổn không 🤔

Share
Dr Dokkan @dokkan7
Nov 11th, 2020 7:50 AM

Chào bạn. Mình đã test và thấy code của bạn chạy ổn.

Lưu ý: bạn nào sau này thấy bài viết này thì cần chú ý là username không nên dính các ký tự đặc biệt như ',",!"/, tốt nhất là ở dạng alphanumeric.

+1
| Reply
Share
com streamvn @streamvn.pay
Nov 24th, 2020 2:36 PM

Đúng cái đang cần, cảm ơn bác Teen Porn Tube, Young Sex, Porn Videos, Free Young Porn Videos, Young Porn Videos, XXX Teen Porn, Young Sex Movies, Teen Clips, Teen Porno https://www.kuxxx.com/categories.html https://www.kuxxx.com/videos/top https://www.kuxxx.com/videos/trending https://www.kuxxx.com/videos/category/662 https://www.kuxxx.com/watch/xvideos-full-hd-xnxx-porn-xxx-free-xhamster-full-porno-videos-xxx-tube-porn-videos_Iijoy9UKKKxc7YZ.html https://www.kuxxx.com/watch/xvideos-xnxx-xhamster-full-porno-videos-xxx-tube-porn-videos_Iijoy9UHHHxc7YZ.html https://clipmp4.com/categories.html https://clipmp4.com/videos/top https://clipmp4.com/videos/trending https://clipmp4.com/watch/xvideos-xnxx-pornhub-free-hd-xhamster-full-porno-videos_BuSXnBDaTO53PR5.html https://clipmp4.com/watch/xvideos-com-xnxx-com-pornhub-com-xhamster-com-full-porno-videos_dKpYkJGFUkhxhQf.html https://xxxuh.com/categories.html https://xxxuh.com/videos/top https://xxxuh.com/watch/xvideos-free-hd-xnxx-porn-free-xhamster-pornhub-full-porno-videos_Iijoy9UHHHxc7YZ.html https://xxxhot.net/ https://xxxhot.net/videos/amateur phim sex hay, phim sex loạn luân, phim sex việt nam, phim sex hay, phim sex thuyết minh https://www.uhxxx.com/xvideos-com-nhung-bo-phim-sex-em-yeu-co-body-mong-to-cuc-hap-dan/ https://www.uhxxx.com/tong-hop-phim-sex-xnxxcom-xvideos-va-thiendia-hay-nhat/ https://www.uhxxx.com/phim-sex-tieng-viet-thuyet-minh-moi-nhat-2020/ https://www.videovz.com/ https://www.videovz.com/category/phim-sex-chau-a/ https://www.videovz.com/category/phim-sex-viet-nam/ https://www.videovz.com/phim-sex-xvideos-com-xnxx-com-moi-nhat-chon-loc-hang-ngay/

https://forum.opencart.com/viewtopic.php?f=169&t=136137&sid=13a34e79a5a5c344e393d4ba4e135f93&start=20 http://danketoan.com/threads/tang-file-tinh-he-so-nguy-co-pha-san-altman-z-score-tu-dong.279463/page-3 http://kythuatphancung.vn/forum/index.php?/profile/121796-17phuclai/&tab=field_core_pfield_11 http://kythuatphancung.vn/forum/index.php?/topic/41333-xin-driver-cand-trung-quốc/ https://ftu-forum.org/diendan/threads/nhts2019-trung-tam-phat-trien-quoc-te.8713/ https://vietfones.vn/forum/threads/ipad-3-dinh-icloud.1691524/ https://www.otofun.net/threads/xe-vinfast-dang-giam-ve-muc-ba-khong.1658622/page-5#post-54458023 http://webdien.com/d/showthread.php?t=342&page=5&p=435928#post435928 https://www.techrum.vn/threads/tổng-hợp-các-địa-chỉ-tải-ios-firmware-uy-tín-nhất-hiện-nay-dành-cho-idevices.149774/#post-923214 http://forum.gamevn.com/threads/dao-nay-box-cha-co-them-game-gi-moi-nhi.1346278/page-288#post-29606407 https://www.freehostforum.com/forum/advertising-forums/webmaster-marketplace/paid-web-hosting-offers-and-requests/dedicated-hosting-offers-and-requests/608577-quad-core-xeon-e3-e5-ssd-dedicated-servers-deals?p=608578#post608578 https://www.smallbusinessforums.org/showthread.php?15862-Hello-everyone&p=127478#post127478 https://bitcointalk.org/index.php?topic=676942.msg53903465#msg53903465 http://www.dientuvietnam.net/forums/forum/Điện-tử-viễn-thông-và-hệ-thống-mạng/tổng-quan-về-ngành-viễn-thông/178317-công-suất-dòng-điện-dc/page2#post1715853 https://forum.xnxx.com/threads/a-to-z-songs.205613/page-2235#post-12019473 https://www.linkedin.com/pulse/xxx-porn-da-maz/?published=t https://streamvnad.tumblr.com/ https://www.reddit.com/user/General_Time3841/comments/jdhprv/xxx_videos_porn/ https://kuxxx.weebly.com/ https://www.blackforum.org/threads/get-adult-video-script-avs-v8-1.16/page-4 https://www.avsdemo.com/blog/1007 https://viblo.asia/q/cach-lay-tu-cum-tu-dau-tien-trong-mot-chuoi-phan-cach-bang-dau-phay-trong-php-P0lPPaoblox https://viblo.asia/p/security-testing-tutorial-part-3-encoding-decoding-and-cryptography-m68Z07QNKkG https://pornhdxxx.joomla.com/ http://www.folkd.com/user/streamvn.ad https://www.bizvotes.com/ca/oakland/cleaning-janitorial-services/watch-online-xvideos-hd-full-xnxx-beeg-pornhub-freya-porn-adult-traffic-1847241.html https://torgi.gov.ru/forum/posts/list/0/131968.page#181698 https://www.joomlacommunity.nl/forum/overige-vragen/uitklapmenu-categorieen-vastzetten https://www.ultimate-guitar.com/forum/showthread.php?t=2011181#13 https://community.shopify.com/c/Technical-Q-A/Newsletter-and-Contact-form-redirecting-to-quot-404-Not-Found/m-p/857632#M32830 https://answers.yahoo.com/question/index?qid=20201101030238AA0LRI6 https://www.freeadzforum.com/index.php?topic=107077.msg127501#msg127501 https://www.skyscrapercity.com/threads/photos-youve-taken.439957/page-296#post-170462226 https://blenderartists.org/t/future-of-instancing-and-multithreading-question/1262774/9 https://www.shroomery.org/forums/showflat.php/Number/27016712/vc/1#27016712 https://forums.gamershood.com/forum/free-online-offline-games/role-playing-games/11417-?p=1962929#post1962929 https://cboard.cprogramming.com/c-programming/179686-how-clear-screen-after-short-pause.html http://www.thefreeadforum.com/postclassifieds/user/profile/382918 http://www.thefreeadforum.com/postclassifieds/for-sale/video-games-consoles/porno-videos_i2539757 https://forum.shoppingtelly.com/threads/flexi-pay.61140/post-992699 https://sailingforums.com/threads/before-and-after-pics.42982/ https://www.theverge.com/users/SuBay-porn https://profiles.delphiforums.com/n/pfx/profile.aspx?webtag=dfpprofile000&userId=1891095061 http://www.debate.org/streamvn/ http://forums.debian.net/viewtopic.php?f=20&t=144202&p=729907#p729907 https://forum.arduino.cc/index.php?topic=699968.msg4784559#msg4784559 https://forum.undernet.org/viewtopic.php?f=4&t=23106 https://www.techrepublic.com/forums/discussions/question-about-purchasing-a-pc/ https://www.mac-forums.com/threads/the-ios14-app-library-love-it-or-hate-it.360651/#post-1868719 http://www.geekstogo.com/forum/topic/375364-win-10-update-14102020-causing-black-screen/?p=2654218 https://www.digitalstorm.com/forums/what-are-you-listening-to-right-now-tidf30040-pidf380538/#380538 https://www.digitalstorm.com/forums/video-editing-tidf31377-pidf380539/#380539 https://forum.lowyat.net/index.php?showtopic=2512211&st=220&p=98870418&#entry98870418 https://www.allkpop.com/forum/threads/irene-seulgi-monster-ep-album-review.454466/page-2#post-9063498 https://www.kanyetothe.com/threads/your-best-most-nostalgic-gaming-memories.8260307/post-542303378 https://www.marketingprofs.com/ea/qst_question.asp?qstid=48095&posted=1#283486 https://cryptocurrencytalk.com/topic/165926-how-to-start-mining/?tab=comments#comment-583695 https://forums.macrumors.com/threads/stuck-with-windows-10.2264699/?post=29166791#post-29166791 https://www.pricescope.com/community/threads/how-many-piercings-do-you-have.251158/page-2#post-4848899 https://forum.topeleven.com/tutorials-guides/80830-why-legal-create-mutant-player.html#post673745 https://www.craftsforum.co.uk/forum/your-crafts/general/1119113-with-coronavirus-fully-in-the-uk-now-will-crafts-see-a-growth?p=1123563#post1123563 https://independent.academia.edu/KMr13 http://www.authorstream.com/streamvn.ad/ https://peatix.com/user/6956592/view https://speakerdeck.com/streamvn https://www.storeboard.com/baysu http://www.wysp.ws/streamvn/ https://gotartwork.com/Profile/anh-nguyen/68817/ https://www.wishlistr.com/profile/streamvn http://forum.cloudme.com/profile.php?id=153802 https://topsitenet.com/profile/streamvn/87710/ https://www.magcloud.com/user/streamvn https://forum.gsmhosting.com/vbb/f1086/im-looking-iphone-11-series-tbk-laser-machine-ezd-file-2836191/#post14258837 https://www.affiliatefix.com/threads/youtube-mastering-and-monetization-for-your-site-hustle.165368/#post-634188 https://www1.flightrising.com/forums/gend/2926041/4#post_45244632 https://www.otosaigon.com/threads/dap-xe-du-lich-ho-ta-nung-dak-nong-mien-dat-yen-binh-cua-nguoi-mnong.8993325/#post-18657183 https://forum.mikrotik.com/viewtopic.php?f=21&t=168411 https://nulledbb.com/thread-PopCorn-WP-Adult-theme?pid=1373422#pid1373422 https://forums.androidcentral.com/showthread.php?t=941379&p=6885382&viewfull=1#post6885382 https://mygicasupport.com/index.php?/topic/4856-t230c-can-not-work-when-resume-from-hibernationsleep-try-this-driver/#replyForm https://forums.mtbr.com/beginners-corner/am-i-too-old-wheelie-727102.html#post15080647 https://forums.mtbr.com/beginners-corner/first-time-bikepark-what-protection-get-1100120.html#post15080651 https://www.vbforums.com/showthread.php?882867-Corona-virus-China-major-city-lockdowns-etc&p=5499566#post5499566 https://bethesda.net/community/topic/389369/the-evil-within-key-bindings/2?language%5B%5D=en&language[]=en https://www.informatik-forum.at/forum/index.php?thread/116765-auslandssemester/&postID=851152#post851162 https://www.spielereihoch3.de/index.php?thread/214-rezensionen-im-blog-vom-spielecafé-der-generationen/#post2593 https://www.adventurespiele.net/index.php?module=pnForum&func=viewtopic&topic=3646&start=0#pid32374 https://www.tripadvisor.com/ShowTopic-g8766828-i36265-k10686130-Lake_Champlain_Kayaking_Companion_Wanted-Lake_Champlain.html#108511180 https://www.mysteryshopforum.com/read/2/815137/815298#msg-815298 https://www.betriebsrat.de/forum/thread/30952-was-hört-ihr-gerade/?pageNo=2#post204234 https://myanimelist.net/forum/?topicid=1878889&show=100#msg61287536 https://myanimelist.net/forum/?topicid=1879080&show=50#post99 https://py.checkio.org/forum/post/12531/assertion-error/#comment-94462 https://www.steinberg.net/forums/memberlist.php?mode=viewprofile&u=296532 https://www.mobafire.com/league-of-legends/forum/videos-and-streams/one-league-trick-which-will-increase-your-chances-to-win-a-laning-phase-44186#lastcomment https://software.informer.com/forum/post/38624/#p38624

https://ello.co/streamvn https://coolors.co/u/anh_nguyen10 https://500px.com/p/streamvnad?view=photos https://codepen.io/streamvn https://about.me/anhmr https://www.spreaker.com/user/pornvideos https://www.plurk.com/p/o48oz0 https://www.plurk.com/p/o48ort https://www.plurk.com/p/o48oyf https://www.plurk.com/p/o48oti https://www.plurk.com/p/o48owx https://www.plurk.com/p/o48ovi https://myanimelist.net/profile/streamvn https://www.ultimate-guitar.com/u/streamvnad https://gab.com/streamvnad https://www.awwwards.com/k-mr/favorites https://www.crunchyroll.com/user/mazda6pro https://www.blogtalkradio.com/videosxxx https://public.tableau.com/profile/anh.nguyen5988 https://checkio.org/user/streamvn.ad https://data.world/streamvnad http://www.cplusplus.com/user/streamvn/ https://www.longisland.com/profile/streamvnad https://discussion.evernote.com/profile/769950-streamvn/?tab=field_core_pfield_12 https://infogram.com/pornvideos-1h9j6qggv19yv4g?live https://streamvnad.newgrounds.com/ https://www.instructables.com/member/streamvn.ad https://dzone.com/users/4477044/streamvnad.html https://www.kiva.org/lender/anh7055 https://giphy.com/channel/streamvn https://www.codecademy.com/profiles/kMr3475010614 https://www.mobafire.com/profile/streamvn-973138?profilepage https://www.woddal.com/post/275798_https-www-kuxxx-com-categories-html-https-www-kuxxx-com-videos-top-https-www-kux.html https://www.woddal.com/streamvnad https://qiita.com/streamvnad https://www.discogs.com/user/streamvn.ad https://www.librarything.com/profile/streamvn https://www.seedandspark.com/user/anh-nguyen-10 https://mix.com/pornvideos https://www.turnkeylinux.org/user/1382994 https://app.lookbook.nu/user/8334964-Streamvn https://nootheme.com/forums/users/streamvn/ https://investimonials.com/users/[email protected] http://appsplit.com/users/streamvn https://profile.hatena.ne.jp/streamvnad/ https://stylowi.pl/streamvn/materialy https://www.diigo.com/profile/streamvnad http://diendan.hoidetmay.vn/members/streamvn-ad.94293/#about https://www.4shared.com/u/Cwxn_BKQ/streamvn.html https://moz.com/community/users/16725709 https://vi.gravatar.com/streamvnad http://www.bobscruises.com/user/anh-nguyen http://tupalo.com/en/users/2476560 https://blip.fm/streamvn https://www.mapleprimes.com/users/sreamvn https://www.zippyshare.com/streamvn https://challenges.openideo.com/profiles/streamvn.ad https://seekingalpha.com/user/52867311/comments https://angel.co/u/anh-nguyen-151 https://sumally.com/mo_nhac https://tune.pk/user/streamvn/about https://www.misterpoll.com/users/642886 https://www.producthunt.com/@k_mr https://bbpress.org/forums/profile/streamvn/ http://www.droidforums.net/members/anh-nguyen.433860/ https://thuvienso.khcnbackan.gov.vn/dien-dan/doc-gia/streamvn/ https://ioby.org/users/streamvnad429188 https://www.flicks.co.nz/member/streamvn.ad1395/ https://www.pearltrees.com/streamvn https://cults3d.com/fr/utilisateurs/streamvnad http://www.wikidot.com/user:info/streamvn https://www.patreon.com/pornvideos/ https://os.mbed.com/users/streamvnad/ https://pubhtml5.com/homepage/vkmm https://www.bonanza.com/users/46876837/profile https://play.eslgaming.com/player/16390454/ https://fliphtml5.com/homepage/cfcji https://torgi.gov.ru/forum/user/profile/1270692.page https://www.pokecommunity.com/member.php?u=911858 https://amara.org/en/profiles/profile/eeq0fkcacxzU3vf67PWvsXxZGh2IOg8MrHeLb-uVECQ/ https://player.me/streamvn/about https://streamvn.livejournal.com/profile http://www.mappery.com/user.php?name=streamvn https://forums.giantitp.com/member.php?235739-streamvn https://forum.cs-cart.com/user/108359-streamvn/ https://community.atlassian.com/t5/user/viewprofilepage/user-id/4188328 https://answers.informer.com/user/streamvn https://www.ted.com/profiles/25088416 https://microasp.upsc.se/streamvn https://gitlab.domainepublic.net/streamvn https://gitlab.pagedmedia.org/streamvn https://gitlab.coko.foundation/streamvn https://gitlab.redox-os.org/streamvn https://www.metooo.io/u/pornvideos https://www.webtoolhub.com/profile.aspx?user=42240740 https://forums.kleientertainment.com/profile/1332157-streamvn/?tab=field_core_pfield_16 http://sonicsquirrel.net/detail/user/streamvn/ https://www.indiegogo.com/individuals/25364939 https://www.atlasobscura.com/users/streamvnad https://list.ly/streamvn-ad/activity https://trello.com/anh754/activity https://lab.louiz.org/streamvn https://gitlab.kitware.com/streamvn https://hub.docker.com/u/streamvn https://hearthis.at/streamvn/ https://www.homify.vn/projects/780574/xxx-videos-porno?buy_article_banner=true https://www.homify.vn/professionals/8171765/streamvn https://pantip.com/profile/6217940#topics https://www.stem.org.uk/users/streamvn https://www.question2answer.org/qa/user/streamvn https://id.pr-cy.ru/user/profile/id/915474/# https://www.sbnation.com/users/SuBay-porn https://www.creativelive.com/student/porn-videos https://gamejolt.com/@pornvideos_a510 http://qooh.me/streamvn https://www.funnyordie.com/users/SuBay-porn https://www.blurb.com/user/streamvn?profile_preview=true https://www.redbubble.com/fr/people/streamvn https://www.gamespot.com/profile/streamvn/about-me/ http://kinhtexaydung.net/members/anh-nguyen-a.79675/ http://chuanmen.edu.vn/members/streamvn.10221/ http://hoiseotop1.com/members/streamvn.491574/ https://raovat49.com/s/ban-may-quay-videos-3148444 http://hoiseotop1.com/threads/bo-truong-quoc-phong-cac-nuoc-asean-ra-tuyen-bo-chung-17.298833/ https://bdsm-zone.com/member.php?u=44970 http://www.consolegames.ro/forum/members/streamvn/ https://3dprintboard.com/member.php?54903-streamvn https://www.zoimas.com/profile/streamvn/about https://ddld.vn/index.php?threads/khoa-van-tay-cua-nhom-an-toan-cho-gia-dinh-viet.48307/#post-76047 https://ddld.vn/index.php?members/streamvn.89624/#about https://forums.prosportsdaily.com/member.php?844698-streamvn http://www.webestools.com/profile-318948.html http://www.rohitab.com/discuss/user/116860-streamvn/ https://sailingforums.com/members/streamvn-pay.52762/#about https://homeservershow.com/profile/19050-streamvnpay/?tab=field_core_pfield_11 http://www.geekstogo.com/forum/user/431598-streamvnpay/ https://forum.lowyat.net/user/streamvnpay https://www.allkpop.com/forum/members/streamvnpay.193619/ https://www.kanyetothe.com/members/streamvn-pay.1736152/#about https://forum.topeleven.com/member.php?u=178803 https://forum.mikrotik.com/memberlist.php?mode=viewprofile&u=179380 https://mygicasupport.com/index.php?/profile/20067-streamvnpay/&tab=field_core_pfield_1

0
| Reply
Share
Answered Nov 9th, 2020 8:12 AM
+1

@dokkan7 Bạn có thể research thêm từ khóa regex, + cái muốn tìm ví dụ php regex start with @ chẳng hạn

Coding happy!

Share
Dr Dokkan @dokkan7
Nov 11th, 2020 7:50 AM

Cảm ơn bạn.

0
| Reply
Share
Nov 12th, 2020 12:52 AM

@dokkan7 Bác giải quyết được vấn đề chưa thế

0
| Reply
Share