任何人都可以快速总结一下差异吗?
在我看来他们都做同样的事情?
谢谢
我想用php替换完整的单词
示例:如果有的话
$text = "Hello hellol hello, Helloz";
Run Code Online (Sandbox Code Playgroud)
我用
$newtext = str_replace("Hello",'NEW',$text);
Run Code Online (Sandbox Code Playgroud)
新文本看起来应该是这样的
新hello1你好,Helloz
PHP返回
NEW hello1你好,NEWz
谢谢.
我必须在地址字段中用NS替换北,南等.
如果我有
list = {'NORTH':'N','SOUTH':'S','EAST':'E','WEST':'W'}
address = "123 north anywhere street"
Run Code Online (Sandbox Code Playgroud)
我可以迭代我的字典值来替换我的地址字段吗?
for dir in list[]:
address.upper().replace(key,value)
Run Code Online (Sandbox Code Playgroud)
我知道我甚至不是很亲密!但是如果您可以使用这样的字典值,那么任何输入都会受到赞赏.
是否可以array_map在str_replace不调用其他函数的情况下结合使用str_replace?
例如:
array_map(str_replace(' ', '-', XXXXX), $myArr);
我根据我在其他StackOverflow问题中找到的内容,创建了一个函数来打印带有变量的prepared-statement-sql-string .
这是我的代码:
foreach($params as $idx => $param) {
if ($idx == 0) continue;
$sql = str_replace('?', "'" . $param . "'", $sql, 1);
}
printError($sql);
Run Code Online (Sandbox Code Playgroud)
当我运行这个时,我得到:Fatal error: Only variables can be passed by reference对于第3行.但是当我使用时
$sql = preg_replace('/\?/', "'" . $param . "'", $sql, 1);
对于第3行,它工作正常.
知道为什么吗?
是否可以合并一个str_replace带有正则表达式的方法,用于捕获简单的html <textfield>输入类型中的url字符串?
我正在考虑一些简单的东西,如用户的提示,如下设置:
这是一些文本,点击此链接这里.
显然,"here"这个词是它之前的url的href(或之后,如果它有所不同).文本输入来自MySQL数据库.
我相信我的解决方案的开始是这样的:
$regex = '';
$pg = $row['pg'];
$pg = str_replace('{regex goes here}', $pg);
Run Code Online (Sandbox Code Playgroud)
但我知道事情不见了.然后我会输出$ pg段落.
我需要清理来自各种Microsoft Office套件应用程序(Excel,Access和Word)的字符串(复制/粘贴),每个应用程序都有自己的编码集.
我正在使用json_encode进行调试,以便能够看到每个编码的字符.
我能用str_replace清理到目前为止我发现的所有内容(\ r \n),但是用\ u00a0我没有运气.
$string = 'mail@mail.com\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0;mail@mail.com'; //this is the output from json_encode
$clean = str_replace("\u00a0", "",$string);
Run Code Online (Sandbox Code Playgroud)
收益:
mail@mail.com\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0;mail@mail.com
Run Code Online (Sandbox Code Playgroud)
那是完全一样的; 它完全忽略了\ u00a0.
有没有解决的办法?此外,我觉得我正在重新发明轮子,是否有一个功能/类完全剥离每个可能编码的可能的字符?
____编辑____
在前两个回复后,我需要澄清我的示例是否有效,因为它是json_encode的输出,而不是实际的字符串!
$string = "<tag>i dont know what is here</tag>"
$string = str_replace("???", "<tag></tag>", $string);
echo $string; // <tag></tag>
Run Code Online (Sandbox Code Playgroud)
那么我在寻找什么代码?
好的我正在运行一个公共JSONP API,数据从我的PHP服务器提供.我刚读过这篇文章:
基本上,如果我的JSON字符串包含U + 2028字符(Unicode行分隔符)或U + 2029字符(Unicode段分隔符),那么这是完全有效的JSON.但是,当使用JSONP时,JSON将作为JavaScript执行,并且JavaScript中的任何字符串都不能包含文字U + 2028或U + 2029,因为它会破坏JavaScript.显然,只要您使用正确的JSON解析器,这通常不是问题,但在JSONP的情况下,浏览器是 JSON解析器.
基本上,如果这些字符在我的JSONP数据中的字符串内部被发送到客户端,则会在字符串中抛出一行或一个段落,这会破坏JavaScript并阻止它执行.这是一种可能性,因为API正在发回一些客户端输入的数据.有人可能会在数据库中输入U + 2028或U + 2029,因此当我将其作为JSONP发回时,它将使用我的API中断任何实现.
所以我的问题是,在PHP中如何清除/输出转义JSON数据以删除或转义U + 2028和U + 2029字符,然后再将其发送到客户端?
目前,我的进程正在对数据数组执行json_encode并将该数据发送到客户端.我应该通过循环遍历数组并过滤它来转义数据,还是一次性转义所有JSON编码的字符串?
另一件事是我不知道如何在PHP中逃避U + 2028和U + 2029字符.我可以做一个str_replace吗?我不确定str_replace是否是多字节安全的,并且没有mb_str_replace函数,除非我使用一些自定义的.那你如何删除/逃脱那些unicode字符?
非常感谢.
我想用一个替换","; 在我的字符串中.
例如:
改变这个
"文本","文本","文本",
对此
"文本,文本,文本",
我一直在尝试,line.replace( ... , ... )但无法正常工作.
任何帮助,将不胜感激.
str-replace ×10
php ×8
replace ×3
string ×2
array-map ×1
c# ×1
dictionary ×1
encoding ×1
escaping ×1
json ×1
jsonp ×1
mysql ×1
preg-match ×1
preg-replace ×1
python ×1
regex ×1
url ×1