سلام دوستان
من چطور میتونم مثلا اسم کاربری رو تگ کنم به نحوی که بعد تگ مثل همین سایت راکت یا اینستاگرام که اسم تگ شده مثل لینک عمل کنه اونم داخل یه text
ممنون میشم راهنمایی کنید
اول باید username برای کاربراتون تعریف کنید بعدم
دو بخش داره
یک frontend
و دو backend
فرانت اند بخاطر اینکه بعد از @ بتونید username مورد نظر کاربرتون رو وارد کنید
و بک اند بخاطر اینکه بتونید زمانی که مثلا @hesammousavi رو به سمت سرور میفرستید بتونه کاربر رو شناسایی کنه و براش نوتیفیکیشن ارسال کنه
خیلی ممنون
کاربراس من یوزر نیم دارن و یونیک هم هست
منظور من اینه مثلا تو یه تکس مثل همین پاسخ که کلی جمله و کلمه هست و باید
چه مدل جستجویی بنویسم که بین کلی رشته و متن @hesammousavi رو پیدا کنه و حتی اونو توی فرانت اند مثل لینک نشون بده
@hesammousavi
سلام
@araz2salmasi
شما میتونی از Regex استفاده کنی , نمونه کد رو براتون میذارم :
/**
* Filter the mention usernames.
*
* @return array
*/
public function getMentionedUsername()
{
preg_match_all("/(\S*)\@([^\r\n\s]*)/i", $this->content, $atlist_tmp);
$usernames = [];
foreach ($atlist_tmp[2] as $k=>$v) {
if ($atlist_tmp[1][$k] || strlen($v) >25) {
continue;
}
$usernames[] = $v;
}
return array_unique($usernames);
}
/**
* Replace the `@{user}` by the user link
*/
public function replace()
{
$this->content_parsed = $this->content;
foreach ($this->users as $user) {
$search = '@' . $user->name;
$place = '[' . $search . '](' . url('user', $user->name) . ')';
$this->content_parsed = str_replace($search, $place, $this->content_parsed);
}
}
/**
* Parse the `@` mention user in content.
*
* @param string $content
* @return string
*/
public function parse($content)
{
$this->content = $content;
$this->usernames = $this->getMentionedUsername();
count($this->usernames) > 0 && $this->users = User::whereIn('name', $this->usernames)->get();
$this->replace();
return $this->content_parsed;
}
@AmirArdakani
خیلی ممنون
دوست عزی منظور منه اینه مثلا در این متن :
فرانت اند بخاطر اینکه بعد از @ بتونید username مورد نظر کاربرتون رو وارد کنید
و بک اند بخاطر اینکه بتونید زمانی که مثلا @hesammousavi رو به سمت سرور میفرستید بتونه کاربر رو شناسایی کنه و براش نوتیفیکیشن ارسال کنه
چطور جستجویی بنویسم که هم متن رو بیاره و هم وقتی اسم کاربری تگ میشه بفهمه این اسم کاربر هست
والا با کد های بالا متوجه نشدم
خیلی ممنون از دوستان
من راهشو پیدا کردم ولی این روش فقط رو string انگلیسی جواب میده و روی فارسی اصلا جواب نمیده
و این ارور رو میده :Undefined variable: keywords
و اینم کد هاش
function beliefmedia_hashtags($string) {
/* Match hashtags */
preg_match_all('/#(\w+)/', $string, $matches);
/* Add all matches to array */
foreach ($matches[1] as $match) {
$keywords[] = $match;
}
return (array) $keywords;
}
/* Usage */
$string = "The quick brown #fox jumped over the lazy #fat#dog";
echo 'pre' . print_r(beliefmedia_hashtags($string), true) . '/pre';
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟