str_replace(&)输出#038,如何避免?

时间:2014-07-02 18:22:17

标签: php

我尝试更换&在我的WordPress模板中使用字符串:

str_replace("&", "et", get_the_title($id);
// outputs et#038;

我通过这样做避免了这个问题:

str_replace("#038;", "et", str_replace("&", "", get_the_title($id)));

我很确定这不是解决问题的正确方法。什么是替换&的正确方法用php?

2 个答案:

答案 0 :(得分:2)

也许:

$result = str_replace("&", "et", get_the_title($id));

&是在HTML(或&)中替换时使用的&的HTML实体:

$result = str_replace("&", "et", html_entity_decode(get_the_title($id)));

但这会解码在浏览器中显示时可能不太好的所有实体。

答案 1 :(得分:0)

你可以尝试olso

ecodeURI('&')

例如:

var temp = 'http://gop.jakdojade.pl?fn='+decodeURI('&')+'tn=aleja+Wolno%C5%9Bci+2'+decodeURI('&')+'tc=50.27889:19.19224'+decodeURI('&')+'a=false'+decodeURI('&')+'t=0'+decodeURI('&') +'n=0'+decodeURI('&')+'as=true'+decodeURI('&')+'aro=1'; 

检查olso"特殊符号和数学符号 用HTML和JavaScript": http://www.javascripter.net/faq/mathsymbols.htm

在Wordpress中,我添加代码来分隔文件,例如script.js并在头文件中导入。它对我有用。对于每个有wordpress替换问题的身体,这是我的例子: 创建像

这样的文件

example.js:

function jakdojade(){ 
   var adres = document.getElementById('adresInput').value; 
   adres = adres.replace('/\s/g', '+'); 
   console.log(adres);  
   var evLink = document.createElement('a');  
   evLink.href = 'http://gop.jakdojade.pl?fn='+adres+decodeURI('&')+'tn=aleja+Wolno%C5%9Bci+2'+decodeURI('&')+'tc=50.27889:19.19224'+decodeURI('&')+'a=false'+decodeURI('&')+'t=0'+decodeURI('&')+'n=0'+decodeURI('&')+'as=true'+decodeURI('&')+'aro=1';  
   evLink.target = '_blank';  
   document.body.appendChild(evLink);  
   evLink.click();
   evLink.parentNode.removeChild(evLink);  
}

将文件添加到模板文件夹中!

header.php beetwen <head></head>

    <script src="<?php echo get_template_directory_uri(); ?>/example.js"></script>

现在您可以在wordpress中添加到您的页面:

  <input id="adresInput" type="text" />
  <div class="button" onclick="jakdojade()">CHECK ROAD</div>