标签: str-replace

如何用PHP替换字符串中的多个%标签%

替换PHP字符串中的一组短标签的最佳方法是什么,例如:

$return = "Hello %name%, thank you for your interest in the %product_name%.  %representative_name% will contact you shortly!";
Run Code Online (Sandbox Code Playgroud)

我将定义%name%是某个字符串,来自数组或对象,例如:

$object->name;
$object->product_name;
Run Code Online (Sandbox Code Playgroud)

等等..

我知道我可以在字符串上多次运行str_replace,但我想知道是否有更好的方法.

谢谢.

php string str-replace

3
推荐指数
1
解决办法
3605
查看次数

在php字符串中删除所有不必要的空格

我想删除所有不在两个字母之间的空格:

$string = "              bah    bah    bah bah  ";
$string = str_replace("/w /w", "+", $string);
// what goes here? to get this:
$string = "bah+bah+bah+bah"; 
Run Code Online (Sandbox Code Playgroud)

我的想法是,我想摆脱所有不必要的空间(不仅在开头和结尾).这不是一个链接,但对于一个搜索框,提交时会爆炸,所以+甚至可以是=或任何基本的东西

php str-replace

3
推荐指数
1
解决办法
3339
查看次数

用PHP替换多个占位符?

我有一个发送网站电子邮件的功能(使用phpmailer),我想要做的基本上是用php替换email.tpl文件中的所有placheholders,其中包含我提供的内容.对我来说问题是我不想重复代码因此我创建了一个函数(下面).

没有php函数,我会在脚本中执行以下操作

// email template file
$email_template = "email.tpl";

// Get contact form template from file
$message = file_get_contents($email_template);

// Replace place holders in email template
$message = str_replace("[{USERNAME}]", $username, $message);
$message = str_replace("[{EMAIL}]", $email, $message);
Run Code Online (Sandbox Code Playgroud)

现在我知道如何做其余的但是我被困在str_replace()上面,如上所示,我有多个str_replace()函数来替换电子邮件模板中的占位符.我想要的是添加str_replace()到我的函数(下面)并让它找到[\]我给它的电子邮件模板中的所有实例,并将其替换为我将给它的占位符值,如下所示:str_replace("[\]", 'replace_with', $email_body)

问题是我不知道如何将多个占位符及其替换值传递给我的函数,并让我str_replace("[{\}]", 'replace_with', $email_body)处理我给它的所有占位符并替换相应的值.

因为我想在多个地方使用该函数并避免重复代码,在某些脚本上我可能会传递函数5占位符和值,而另一个脚本可能需要传递10个占位符和值,以便在电子邮件模板中使用该函数.

我不确定是否需要在将使用该函数的脚本上使用一个数组,并且函数中的for循环可能使我的php函数从脚本中获取xx占位符和xx值并且循环占位符并用值替换它们.

这是我上面提到的功能.我对脚本进行了评论,这可能更容易解释.

// WILL NEED TO PASS PERHAPS AN ARRAY OF MY PLACEHOLDERS AND THERE VALUES FROM x SCRIPT
// INTO THE FUNCTION ? …
Run Code Online (Sandbox Code Playgroud)

php function placeholder str-replace

3
推荐指数
1
解决办法
9969
查看次数

PHP str_replace包含函数/文件作为模板系统的一部分

概述:我正在为我的网站制作一个诱人的系统,目前进展顺利,它正在按照我的预期工作,当我希望像{PAGE_SIDEBAR}这样的东西显示文件模板时出现的唯一问题/sidebar.php或类似的东西.

我在用

//loads of other str_replace here
$body = str_replace("{PAGE_SIDEBAR}, include("template/sidebar.php"), $body);
echo $body;
Run Code Online (Sandbox Code Playgroud)

这工作,但它包括在正文开头的文件,而不是{PAGE_SIDEBAR}.标签所在的位置显示数字1.

有关更好的说明,请参见屏幕截

渲染模板之前的外观如何

使用上面的插入代码

此外,对于兴趣点,它如何使用file_get_contents()而不是include():http:// www.jamesmoorhouse.co.uk/stack_overflow/str_replace/file_get_contents_method.png

理想情况下,我希望它能像include方法一样工作,但是会显示file_get_contents方法放置它的位置.

php str-replace

3
推荐指数
1
解决办法
2954
查看次数

用于删除iframe的正则表达式

我正在尝试str_replace用我自己的内容替换所有iframe.我相信我可以使用正则表达式但不完全确定如何删除iframe标记中的所有内容.

由于我不确定如何实现这一点,以下是我一直在使用的.但它只是替换"iframe",所以当一个页面被加载到iframe加载的任何地方时,现在只显示如果iframe要正确解析将加载的URL.

$toremove = str_replace("iframe", "", $toremove);
Run Code Online (Sandbox Code Playgroud)

以下是使用上述代码时加载的内容而不是iframe的示例输出.你可以看到它是整个iframe,只是没有单词"iframe"打破iframe(这比显示它更好)

< src="http://cdn2.adexprt.com/exo_na/center.html" width="728" height="90" frameborder="0" scrolling="no"> 
Run Code Online (Sandbox Code Playgroud)

但现在我想完全删除iframe及其所有内容,这样我就可以将自己的内容放在其中,而不会显示旧的代码.但我不知道如何str_replace使用正则表达式编辑我的作品,而不仅仅是作品"iframe"

php regex iframe str-replace

3
推荐指数
1
解决办法
7618
查看次数

PHP强制str_replace只替换其中一个结果

这完美地运作:

$replaceLyrics=str_replace
(
    'story',
    '_____',
    'The story of my life I take her home I drive all night to keep her warm and time Is frozen (the story of, the story of)'
);

echo $replaceLyrics;
Run Code Online (Sandbox Code Playgroud)

输出:

The _____ of my life I take her home I drive all night to keep her warm and time Is frozen (the _____ of, the _____ of)
Run Code Online (Sandbox Code Playgroud)

我的问题是,是否可以使用内部php功能来仅替换匹配中的第一个匹配而不是全部替换.

我期待得到这个输出:

The _____ of my life I take her home I drive all night to keep …
Run Code Online (Sandbox Code Playgroud)

php arrays string foreach str-replace

3
推荐指数
1
解决办法
589
查看次数

str_replace()不会用重音替换字符

我有一个非常长的html字符串,其中包含希腊语和英语文本,其中大多数单词都包含html标签.我已经成功地使用下面的函数来删除文本中的希腊语重音符,以便它可以很好地大写.

但是在一些字符之后的本文中,替换停止发生,文本返回重音符号.我已经尝试了一些其他功能,我在网络上找到但没有运气.

有帮助吗?

我正在使用的功能是:

public static function stripAccents($str) {
    $a = array('?','?','?','?','?','?','?','?','?','?','?','?','?','?','?');
    $b = array('?','?','?','?','?','?','?','?','?','?','?','?','?','?','?');
    return str_replace($a, $b, $str);
}
Run Code Online (Sandbox Code Playgroud)

并且文本的示例是:

<div class="menu-page">

<h3>DESSERTS / ?????????</h3>

<h4>GOAT CHEESE ICE CREAM (N)</h4>
<p class="price">€7,50</p>
<p>??????? ???? ??????????? ????? ?? ?????????? ????????? & ?????? ?????????</p>
<p>With tomato marmalade & lemon cream</p>

<div class="clearfix"></div>

<h4>MOCHA A LA PALAIA</h4>
<p class="price">€8,50</p>
<p>??????? ?????, ????????? & ???????? ????????</p>
<p>Coffee and vanilla ice cream & Italian meringue<p>

<div class="clearfix"></div>

<h4>THE TRAIL OF CHOCOLATE (N)</h4>
<p class="price">€9,50</p> …
Run Code Online (Sandbox Code Playgroud)

html php string str-replace

3
推荐指数
1
解决办法
834
查看次数

MATLAB正则表达式被拒绝删除字符串开头的空格

假设我们在MATLAB中有这个字符串:

mm = ['  44412 (25.01%)'];
Run Code Online (Sandbox Code Playgroud)

我想只删除此字符串中的第一个空格以获得此输出:

'44412 (25.01%)'
Run Code Online (Sandbox Code Playgroud)

我正在使用strrep(mm,'\^\s\s','')但没有工作.问题是什么?

regex string matlab str-replace

3
推荐指数
1
解决办法
73
查看次数

为什么我不能直接将函数传递给replace方法?

我简直无法理解为什么第二行和第三行的输出彼此不同:

alphabet_ASCII = '';
for (i=65; i<=90; i++) {
  alphabet_ASCII += i;
}
alphabet_ASCII += '<br>';

document.body.innerHTML += alphabet_ASCII;



document.body.innerHTML += 
  alphabet_ASCII.replace(/\d{2}/g, x=>String.fromCharCode(x));

document.body.innerHTML += 
  alphabet_ASCII.replace(/\d{2}/g, String.fromCharCode);
Run Code Online (Sandbox Code Playgroud)

x=>String.fromCharCode(x)和之间有什么区别String.fromCharCode

javascript regex str-replace

3
推荐指数
1
解决办法
114
查看次数

PHP 7.1用动态变量替换多个值

我对PHP很新,虽然我找到了解决问题的方法,但我觉得有一种更简单的方法可以实现相同的结果:

这就是我需要做的:

我有一个像这样的字符串(在真正的字符串中有大约25个要替换的值)

"We have received ##AMOUNT## ##CURRENCY## for your OrderID n. ##ORDER_ID##"
Run Code Online (Sandbox Code Playgroud)

在这个字符串中,我必须
##AMOUNT##用变量$AMOUNT
##CURRENCY##值和变量$CURRENCY
##ORDER_ID##值替换为变量值的变量值$ORDER_ID

目前我创建了一个数组:

$flds=['AMOUNT','CURRENCY','ORDER_ID'];
Run Code Online (Sandbox Code Playgroud)

我替换使用循环和动态变量:
但我已经看到str_replace也接受数组,因此可以构建一个更优雅(和有效)的解决方案,但...我找不到它

可以给一些提示吗?

谢谢

php arrays str-replace

3
推荐指数
1
解决办法
472
查看次数

标签 统计

str-replace ×10

php ×8

string ×4

regex ×3

arrays ×2

foreach ×1

function ×1

html ×1

iframe ×1

javascript ×1

matlab ×1

placeholder ×1