【发布时间】:2015-04-21 09:05:12
【问题描述】:
我有这个代码来搜索主题标签,但这是一个字符串。
<?php
$test = '#1 en #2 als voorbeeld moeten niet werken maar #test, #l33t en #swag #420blazeit wel.';
if (preg_match_all('/(^|\s)(#\w+)/', $test, $arrHashtags) > 0) {
foreach ($arrHashtags[2] as $strHashtag) {
if (preg_match('/#\d*[a-z_]+/i', $strHashtag)) {
$test = str_replace($strHashtag, '<a href="http://twitter.com/'.substr($strHashtag, 1).'">'.$strHashtag.'</a>', $test);
}
}
}
echo $test;
?>
但我想在从我的数据库中选择的文本中搜索主题标签。
例如echo "<p>".nl2br(htmlentities($row['tekst']))."</p>";,在我放入数据库的文本中进行搜索。
<?php
include_once('connection.class.php');
class ShowOne {
private $db;
public function __construct() {
$this->db = new Connection();
$this->db = $this->db->databaseConnection();
}
public function showOneItem() {
$query = $this->db->prepare('SELECT * FROM blog WHERE id=:itemid AND geblokkeerd=0');
$query->bindValue(":itemid", $_GET["item"], PDO::PARAM_STR);
if($query->execute()) {
if($query->rowCount() > 0) {
while($row = $query->fetch()) {
echo "<div class='blog'>";
echo "<h2>".htmlentities($row['titel'])."</h2>";
echo "<table class='showtable'>";
echo "<tr><td>Eigenaar blog: </td><td>".htmlentities($row['author'])."</td></tr>";
echo "<tr><td>Geplaatst op: </td><td>".htmlentities($row['geplaatstdate'])."</td></tr>";
echo "<tr><td>Laatst geupdate op: </td><td>".htmlentities($row['updatedate'])."</td></tr>";
echo "<tr><td>Trefwoorden: </td><td>".htmlentities($row['trefwoorden'])."</td></tr>";
echo "</table><br />";
if ( !empty( $row['afbeelding'] ) ) {
echo '<img src="uploadedafb/'.htmlentities($row['afbeelding']).'"<br /><br />';
}
echo "<p>".nl2br(htmlentities($row['tekst']))."</p>";
echo "<p>".nl2br(htmlentities($row['tekst']))."</p>";
echo "<br /><p><a class='linkover' href='index.php'><i class='fa fa-long-arrow-left'></i>Terug naar volledig overzicht</a></p>";
if(isSet($_SESSION["userid"])) {
if($_SESSION["rank"] > 2) {
echo '<a href="bewerken.php?id='.$row["id"].'"><i class="fa fa-pencil"></i> Bewerken</a>';
} else if($_SESSION['userid'] == $row['userid']) {
echo '<a href="bewerken.php?id='.$row["id"].'"><i class="fa fa-pencil"></i> Bewerken</a>';
}
}
/*if($row['userid'] == $_SESSION['userid'] || $_SESSION['rank'] > 1) {
echo "Verwijder Blog";
}*/
echo "</div>";
}
} else {
echo "<div class='error'><h3>Let op</h3>Er is geen blog gevonden.</div>";
}
} else {
echo "<div class='error'><h3>Let op</h3>Er is iets fout gegaan met het ophalen van de blog.</div>";
}
}
}
?>
【问题讨论】:
-
我对你的
first code block没意见,这很清楚,但是2nd block呢?我很痛苦,看看你想要什么?这是您尝试执行的代码但它不起作用吗?你能更清楚你想要什么(也许有例子)。也许您在2nd block中的所有文本都是德语(对吗?)这一事实让人难以理解,也许您可以翻译一下? (特别是数组键和echos) -
基本上我想在我的博客中搜索主题标签,它适用于字符串。但是博客文本不是我的 SQL 数据库中的字符串。我不知道如何使用该文本搜索主题标签。
-
我不明白你提到的区别......当你从数据库中获取数据时,它是一个字符串(特别是在没有类型的 PHP 中)。如果你没有得到一个字符串,你会得到一个包含(在一定深度)你想要的字符串的数组。您使用
$row作为数组,每列作为键。您要解析的字段是什么?它不是在您的数据库的列中吗? -
它是我数据库中的一个列,例如,仍然给我关于 undefiend 变量 $test 的问题。不知道如何定义它们。
-
如果它在
tekst列中,您希望的字符串必须在您的$row['tekst']中。这不是你想要的吗?你的echo "<p>".nl2br(htmlentities($row['tekst']))."</p>";上打印了什么?你没有得到你想要解析的字符串吗?