- PHP内部ウィキペディアのように:ファイルからテキストで自動リンクを作成
-
21-09-2019 - |
質問
私は私が作っています。このスクリプトに助けたい...
私は私のウェブサイトは、それ自体がウィキペディアになりたい...私はPHPのウェブサイトを持って、たとえば取る...私はそれで毎日記事を公開します。
私は
それぞれジェナ・ブッシュとマイケル・ジャクソンの2の記事を公開したと今、私は、テキスト/ XML /データベースのテキストとリンクに保存
例
jenna bush, http://www.domain.com/jenna.html
michael jackson, http://www.domain.com/michael.html
または
のように必要な任意の方法<xml>
<item>
<text>jenna bush</text>
<link>http://www.domain.com/jenna.html</link>
</item>
... etc
</xml>
今、私が何をしたい。
...自動的に任意のジェナブッシュを変換したり、任意のマイケル・ジャクソンは、すべて私のウェブサイトの上に、それぞれのリンクにリンクされている必要がありますPHPスクリプトです すべてのヘルプははるかに高く評価され、...
解決 2
私はそれをカスタマイズして、ここで皆のための
興味があります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 );
}
リンク関数を作成するだけの文字列終了タグのページの「ABCD-ある-KK」のような「ABCDはKKである」を作る;)
歓声!
他のヒント
それらの単語を含むテキストがデータベースにそのような何かを達成するための最良の方法であると仮定するとstr_replace <のhref = "http://ie2.php.net/manual/en/function.str-replaceを使用しています。 PHP」のrel = "nofollowをnoreferrer"> http://ie2.php.net/manual/en/function.str-replace.php の
テキストの前で右があなたが特定の語句を検索し、他のフレーズに置き換え、その上に機能を実行し、データベースに送信されます。
また、おそらくより良いアプローチは、例えば、(ウィキペディアが使用する上で動作するソフトウェア)のMediaWiki同じ1、あなたはその周りに[[]]に置くのMediaWikiで別の記事へのリンクを作成したい毎回あります[ [マイケルジャクソン]]。 そのように、あなたがリンクになり何をより細かく制御する必要があります。
例:あなたは王子の記事音楽家とチャールズ皇太子の1を持っていたあなたはチャールズ皇太子にリンクしたい場合は、最初のメソッドを使用すると、MediaWikiのメソッドを使用している場合しかし、あなたは書くでしょう、彼に王子は、第1およびリンクを見つけるかもしれません[[チャールズ皇太子]]は、それを探すために何を知っているだろう。 //www.phpを:私はするpreg_match HTTPをお勧めしたいことをすることができません。ネット/マニュアル/ EN / function.preg-match.phpする
これは、MediaWikiは同じことをする方法を見てみた価値があるかもしれ、あなたが無料でダウンロードすることができ、それは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() ;