题
我认为将是一种简单的实现的代码和一个功能两行,原来进行失败。
在我的网页,我希望能够输入[text]1[/text]
的,它所要做的是拉动该ID的标题。
function textFormat($text) {
$raw = array(
'\'\[text\](?P<id>.*?)\[/text\]\'is'
);
$out = array (
'<a href="index.php?function=getData&reference=text&id=$1">' . getTextTitle() . '</a>'
);
preg_replace($raw, $out, $text);
return $text;
}
function getTextTitle($id) {
$sql = mysql_query("SELECT title FROM text WHERE id = $id");
return mysql_result($sql);
}
所以,这里的可爱的小问题:由于一看就知道,我打电话与数字的同名变量,它在引号的伟大工程的功能,但我们知道,PHP不喜欢这样。所以,我选择了一组命名。使用$regs['id']
无法工作。
我是不是做错了什么?
我要对这个错误的方式?
解决方案
好了,你肯定做的比我会一个完全不同的方式,但我认为有些事情不是太离谱,从你尝试可能的工作是什么。尝试这样:
function textFormat($text) {
$raw = array(
'\'\[text\](?P<id>.*?)\[/text\]\'ise'
);
$out = array (
'\'<a href="index.php?function=getData&reference=text&id=$1">\' . getTextTitle(\'$1\') . \'</a>\''
);
preg_replace($raw, $out, $text);
return $text;
}
function getTextTitle($id) {
$sql = mysql_query("SELECT title FROM text WHERE id = '" . mysql_real_escape_string($id) . "'");
$res = mysql_result($sql);
$row = mysql_fetch_array($res);
return $row ? $row[0] : 'invalid ID';
}
您原来getTextTitle()
会,除非别的东西是怎么回事,我不知道,让任何人做任何事情,他们喜欢通过SQL注入数据库,顺便说一句。不客气。
另外,我不知道(?P<id>
噪声约为在正则表达式是什么,所以我假设它的需要出于某种原因,并独自离开它。我不知道这是否是正确的。
不隶属于 StackOverflow