Frage

Ich möchte Hilfe zu diesem Skript Ich mache ...

Ich mag meine Website eine wikipedia in mir sein ... nimmt zum Beispiel habe ich eine PHP-Website ... ich täglich Artikel zu veröffentlichen.

Angenommen, ich veröffentliche 2 Artikel auf Jenna Bush und Michael Jackson bzw.

Jetzt speichere ich in text / xml / Datenbank Text und Link

Beispiel

jenna bush, http://www.domain.com/jenna.html    
michael jackson, http://www.domain.com/michael.html

oder eine beliebige, welche Möglichkeiten erforderlich wie

<xml>
<item>
<text>jenna bush</text>
<link>http://www.domain.com/jenna.html</link>
</item>
... etc
</xml>

jetzt, was ich will, ist der PHP-Skript automatisch zu ihren jeweiligen Links, um alle über meine Website jede Jenna Bush oder jeder Michael Jackson ...

verknüpft umwandeln sollte

Jede Hilfe ist sehr geschätzt ...

War es hilfreich?

Lösung 2

maßgeschneiderte ich es und hier ist für alle Interessierten

function tags_autolink($text) 
{

$text = " $text ";
$query_tags_autolink = "SELECT tag from tags";
$rs_tags_autolink = mysql_query($query_tags_autolink) or print "error getting tags";

while($row_tags_autolink = mysql_fetch_array($rs_tags_autolink))
{
$tag_name = trim($row_tags_autolink['tag']);
$tag_url = "http://www.domain.com/tag/".createLink(trim(htmlentities($tag_name)))."/";
$text = preg_replace("|(?!<[^<>]*?)(?<![?./&])\b($tag_name)\b(?!:)(?![^<>]*?>)|imsU","<a href=\"$tag_url\">$1</a>" , $text);
}

return trim( $text );
}

die Verknüpfung erstellen Funktion macht einfach eine Reihe von "ABCD ist kk" wie "ABCD-is-kk" für einen Tag Seite endet;)

Prost!

Andere Tipps

Unter der Annahme, dass der Text diese Worte sind in der Datenbank der beste Weg, so etwas zu erreichen, enthält, wird unter Verwendung von str_replace http://ie2.php.net/manual/en/function.str-replace.php

Kurz bevor der Text an die Datenbank übermittelt wird Sie führen eine Funktion auf, dass sieht für bestimmte Phrasen und ersetzt sie mit anderen Phrasen.

Alternativ und wahrscheinlich ein besserer Ansatz ist die gleiche, die Mediawiki (die Software, dass wikipedia läuft auf Anwendungen), jedes Mal wenn Sie einen Link zu einem anderen Artikel in einer Mediawiki erstellen möchten Sie setzen [[]] um es zum Beispiel [ [Michael Jackson]]. Auf diese Weise haben Sie mehr Kontrolle darüber, was zu einem Link.

Beispiel: Wenn Sie einen Artikel über Prinz den Musiker und ein auf Prinz Charles hatte und man wollte Link zu Prinz Charles, die erste Methode finden könnte Prince ersten und Link zu ihm, aber wenn Sie das Mediawiki-Methode verwenden, würden Sie schreiben [[Prinz Charles]] und es würde wissen, was zu suchen. Um dies zu tun Ich würde empfehlen, preg_match http: //www.php. net / manual / en / function.preg-match.php

Es kann sich lohnen, einen Blick an, wie Mediawiki macht das gleiche, können Sie es kostenlos herunterladen und es geschrieben in PHP

function auto_href($x)
        {
        $x = explode(' ', $x);
        foreach ($x as $y)
                {
                if (substr($y, 0, 7) == 'http://')
                        $y = '<a href="'.$y.'">'.$y.'</a>';
                $z[] = $y;
                }
        return implode($z, ' ');
        }
function tags_autolink() 
{
    $conn = mysqli_connect("localhost", "root", "", "sample")
or die ("Could not connect to mysql because ".mysqli_error());

$text = 'You paragraph or text here';
$query_tags_autolink = "SELECT tag from tags";
$rs_tags_autolink = mysqli_query($conn,$query_tags_autolink) or print "error getting tags";

while($row_tags_autolink = mysqli_fetch_array($rs_tags_autolink))
{
$tag_name = trim($row_tags_autolink['tag']);
$trimedurl = str_replace(' ', '-',$tag_name);
$trimedurl=strtolower("$trimedurl");
$tag_url = "http://yourdomain/tag/$trimedurl";
$text = preg_replace("|(?!<[^<>]*?)(?<![?./&])\b($tag_name)\b(?!:)(?![^<>]*?>)|imsU","<a href=\"$tag_url\">$1</a>" , $text);
}

return  trim($text);
}

echo tags_autolink() ;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top