1

这类似于我之前的问题之一尽管这是在寻找解决方案而不是调试它的工具。我正在尝试构建一个脚本(除其他外)自动将在 MySQL 数据库中输入的名称替换为以 WikiMedia 格式加粗的名称,因此当我输入 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).
?>

谢谢你能给我的任何帮助,这真的让我很难过。

4

1 回答 1

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
于 2012-07-10T19:32:05.760 回答