尝试为用户名制作@标签
Trying to make @ tag for usernames
所以我尝试使用 preg_replace 在我的 php 游戏中使用 @ 来标记用户名。
这是我的代码:
$find[13] = '@';
$replace[13] = '<a href="profil.php?username=">';
return preg_replace($find,$replace,$text);
我只收到这条警告消息:
Warning: preg_replace(): No ending delimiter '@' found in C:\xampp\htdocs\mafiagamev2\functions\bbcodes.php on line 61
有什么帮助吗?
问题是 preg_replace()
需要一个正则表达式作为搜索字符串。大多数编程语言都有正则表达式类型,但 PHP 没有。在这里,您将模式定义为带有分隔符的字符串。您基本上可以使用大多数字母数字字符,包括 @
,但最常用的是 /
。因此 preg_replace
需要一个包含在定界符中的模式,而您只提供了一个字符,PHP 将其解释为开始定界符。
您要做的是将所有以 @
开头的单词替换为 link。很多这个正则表达式取决于你如何验证用户名。对于此示例,我假设您只允许大写和小写字母数字字符、数字、连字符和下划线:
preg_replace('/(^|\s)@([\w\d-_]+)/g', '<a href="profil.php?username="></a>')
Get the explanation and try it out
请注意,您可能会生成大量死link。我建议在输入期间使用 JavaScript 进行验证或验证用户名以替换您的数据库。
所以我尝试使用 preg_replace 在我的 php 游戏中使用 @ 来标记用户名。
这是我的代码:
$find[13] = '@';
$replace[13] = '<a href="profil.php?username=">';
return preg_replace($find,$replace,$text);
我只收到这条警告消息:
Warning: preg_replace(): No ending delimiter '@' found in C:\xampp\htdocs\mafiagamev2\functions\bbcodes.php on line 61
有什么帮助吗?
问题是 preg_replace()
需要一个正则表达式作为搜索字符串。大多数编程语言都有正则表达式类型,但 PHP 没有。在这里,您将模式定义为带有分隔符的字符串。您基本上可以使用大多数字母数字字符,包括 @
,但最常用的是 /
。因此 preg_replace
需要一个包含在定界符中的模式,而您只提供了一个字符,PHP 将其解释为开始定界符。
您要做的是将所有以 @
开头的单词替换为 link。很多这个正则表达式取决于你如何验证用户名。对于此示例,我假设您只允许大写和小写字母数字字符、数字、连字符和下划线:
preg_replace('/(^|\s)@([\w\d-_]+)/g', '<a href="profil.php?username="></a>')
Get the explanation and try it out
请注意,您可能会生成大量死link。我建议在输入期间使用 JavaScript 进行验证或验证用户名以替换您的数据库。