这类似于我以前的一个问题here,虽然这是寻找解决方案而不是调试它的工具。我正在尝试构建一个脚本(除其他外)用WikiMedia格式的粗体名称自动替换MySQL数据库中输入的名称,所以当我输入NAME时:我希望得到'''NAME''':
。我实际得到的是NAME'''''':
。我已经尝试使用str_replace(array("\r", "\n"), array('', ''), $row);
在上述问题上发布消息来从我的数组中删除回车,但它没有效果。
我用来生成它的代码是:
<?php
$link = mysql_connect($host, $username, $pass);
$db = mysql_select_db($database, $link);
$query = "SELECT name FROM " . $prefix . "";
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_array($result) or die(mysql_error());
while($row = mysql_fetch_array($result)){
$name[] = $row['name'];
}
$sim = $_POST['sim']; //Fetches SIM from text box.
$sim_wrap = wordwrap($sim, 80, "\n"); //Constrains to 80 columns for readability.
$sim_penultimate = str_replace("::", "<nowiki>::</nowiki>", $sim_wrap);
$sim_final = str_replace($row . ":", "'''" . $row . "''':", $sim_penultimate); //Bold names
echo stripslashes($sim_final); //Removes slashes wordwrap() adds on some configurations example (James\'s).
?>
谢谢你能给我的任何帮助,这真让我难过。
答案 0 :(得分:2)
$row
是来自mysql_fetch_array()
的结果 - 换句话说,它是一个数组。为什么要用字符串($row . ":"
)连接它?使用字符串连接数组不起作用 - 您需要连接各个元素。
看起来你真正想要做的就是这样......
$names = array();
$replaces = array();
while($row = mysql_fetch_array($result)){
$names[] = $row['name'] . ":";
$replaces[] = "'''" . $row['name'] . "''':";
}
然后又......
$sim_final = str_replace($names, $replaces, $sim_penultimate); // Bold names