草庐IT

replace-md

全部标签

php - `str_replace` 有什么特别之处?

我想编写一个函数,允许我用数组中的连续值替换字符串中重复的标记,这样WHEREname=?andage?,array('joe',32)变为Wherename=joeandage=32。(我知道变量绑定(bind)不应该“手动”完成;我正在尝试对传递给EloquentDB::select语句的参数进行故障排除)。我是这样写的:functionstr_replace_array($search,array$replace,$subject){foreach($replaceas$replacement){$subject=str_replace($search,$replacement,

php - md5() .vs. 之间有什么不同?保存密码时的哈希值?

今天,我和我的friend讨论了一个网站的安全问题。在保存用户密码时,我通常使用带有随机盐的散列。由于hash无法反编译,我friend经常使用md5()来加密用户密码。问题是:我试着跟他解释,md5()可以解密,但是他拿了:"Icanusingmd5(md5(md5('password')))ormd5()+randomstring".所以,我也提到了这个会有很多时间保存到数据库中,当用户登录时,再次解密。但这还不足以让人信服。有没有人可以建议我如何解释容易理解?谢谢。 最佳答案 MD5是一个散列函数(单向),无法解密,MD5用于

PHP preg_replace oddity with £ pound sign and ã

我正在应用以下功能效果很好,但如果我将ã添加到preg_replace中,比如$new_string=preg_replace("/[^a-zA-Z0-9\sçéèêëñòóôõöàáâãäåìíîïùúûüýÿ]/","",$string);$string="Thisissometextandnumbers12345andsymbols!£%^#&$andforeignletterséèêëñòóôõöàáâäåìíîïùúûüýÿã";它与英镑符号£冲突,将英镑符号替换为黑色方block中未识别的问号。这并不重要,但有人知道这是为什么吗?谢谢,巴里更新:谢谢大家。更改函数添加u修饰

php - 使用 Str_replace 在 PHP 中将 Æ 转换为 "Ae"?

出于业务逻辑的原因,我需要将字符串中的字符“Æ”转换为“Ae”。然而,尽管mb_detect_encoding()告诉我字符串是UTF-8,但我不知道该怎么做。(出于业务逻辑的其他原因,在替换字符串之前对htmlentities()字符串将是一个问题,正如其他Google搜索所建议的那样。)我首先尝试的是这个,使用测试字符串“Æther”:returnstr_replace("Æ",'Ae',$string);不幸的是,它实际上并没有在文本中找到Æ,返回“Æther”。returnstr_replace(chr(195),'Ae',$string);找到Æ并替换它,但随后添加了一个未知

php - 使用 preg_replace 返回引用数组键并替换为值

我有这样一个字符串:http://mysite.com/script.php?fruit=apple我有一个这样的关联数组:$fruitArray["apple"]="green";$fruitArray["banana"]="yellow";我正在尝试在字符串上使用preg_replace,使用数组中的键来反向引用apple并将其替换为绿色,如下所示:$string=preg_replace('|http://mysite.com/script.php\?fruit=([a-zA-Z0-9_-]*)|','http://mysite.com/'.$fruitArray[$1].'/'

php - 反向preg_replace

我有这样的正则表达式:^page/(?P\d+)-(?P[^\.]+)\.html$和一个数组:$args=array('id'=>5,'slug'=>'my-first-article');我想要一个函数:my_function($regex,$args)这将返回这个结果:page/5-my-first-article.html如何实现?类似于https://docs.djangoproject.com/en/dev/ref/urlresolvers/#reverse 最佳答案 有趣的挑战,我编写了一些适用于此示例的代码,请注意您

php - PHP MD5 和 Solaris Digest MD5 的输出不匹配

当我在PHP中运行下面的代码时$saltedPW="Test12309566173258152148992";$hashedPW=md5($saltedPW);echo$hashedPW;我得到的输出是fc8f7b8737b9d4754ff1156a3ad88b03当我在solaris机器上的bashshell中运行上面的代码时echoTest12309566173258152148992|digest-amd5我得到的输出是04df7b4ce498b87d696b32140ca63f6a我做错了什么吗?我已经在shell中尝试了双引号,但我仍然得到相同的结果。

php - onkeyup ="this.value = this.value.replace(/,/g,' .')"with php echo' '

在输入字段中需要将,替换为.。使用HTM这样的代码可以正常工作onkeyup="this.value=this.value.replace(/,/g,'.')"但需要像这样在php中使用(带回显):echo'';用php不行。如果使用此this.value.replace(/,/g,/./)则,将替换为/./。尝试过(/,/g,"/./"),(/,/g,/"."/),(/,/g,.)没有任何效果(我的意思是,不会更改为.)。有什么想法吗? 最佳答案 您必须在PHP代码中使用反斜杠转义'。echo'';否则你就是把你的绳子切成小块,然

php 将 preg_replace 转换为 preg_replace_callback

我正在处理这段旧代码,遇到了这个-但失败了:preg_replace('!s:(\d+):"(.*?)";!e',"'s:'.strlen('$2').':\"$2\";'",$sObject);它告诉我preg_replacee修饰符已弃用,改为使用preg_replace_callback。据我所知,我应该用回调函数替换's:'.strlen('$2').':\"$2\";'部分替补上场。我不太明白的是我将要替换的正则表达式的作用。获取填充在数据库字段中的php序列化数据(愚蠢,我知道......),长度字段损坏并修复它们以重新插入是有点的一部分。那么谁能解释一下那个位在做什么,或

php - 如何使用 PHP preg_replace 链接 Twitter 用户名?

我想搜索我的推特状态对象的文本属性并将@username换成@username.到目前为止我尝试过的是这样的:$pattern='/([@]{1})([a-zA-Z0-9\_]+)/';$replace='\1\2';$new_string=preg_replace($pattern,$replace,$text);但它不做任何替换。我知道我的regexp是错误的,但我无法弄清楚确切的位置/原因。帮忙?**编辑:...根据要求提供示例数据?$text='@janesmithIlikethat,butmyfriend@johndoesaiditbetter.';期望的输出:@janesm