1

リンクと Web サイト名を含むテキスト ファイルがあります。

例えば:

ヤフーhttp://www.yahoo.com
グーグルhttp://www.google.com

次に、このテキスト ファイルを php Web サイトにロードする必要があります。ファイルを読み込めます

次に、このテキストをハイパーリンクに変換する必要があります。リンクの位置を見つけなければなりません。

利用した:

echo strchr("$array[$x]","http") // find the hyperlink
echo substr("$array[$x]",0,8) // find the website name

Web サイトの名前とハイパーリンクを見つけた後、どうすればリンク<a href ...></a>を作成できますか?

私は試した:

echo "<a href = "echo strchr("$array[$x]","http");>echo substr("$array[$x]",0,8). "<br>\n"; </a>

しかし、うまくいきません。実際どうしたらいいのかわからない。ここで誰かがそれを修正するのを手伝ってくれますか?


ここに私のサンプルコードがあります:

s13.postimg.org/ce8omobnr/image.png

s23.postimg.org/ym3nifyfv/image.png

4

2 に答える 2

1

入力の形式があなたが示したものと異なる場合を除き、入力ファイルの各行の断片を分割するために爆発を使用しない理由がわかりません。

それ以外の場合は、 file() を使用して入力ファイルを読み取ることができます。これは、ファイル内の行の配列を返します。次に、この配列をループして、すべての行を 2 つの部分に分解できます。最初の部分は名前で、2 番目の部分はハイパーリンクです。次に、リンク タグを作成するだけで準備完了です。

コード例:

<?php
$lines = file('input.txt');

foreach ($lines as $curLine)
{
    $pieces = explode(" ", $curLine, 2);

    echo sprintf("<a href=\"%s\">%s</a>\n", trim($pieces[1]), trim($pieces[0]));
}

編集: 更新を見て、各行のトークン間に複数のスペースまたはその他の空白文字があることに気付きました。その場合、次の行を置き換えます。

$pieces = explode(" ", $curLine, 2);

と:

$pieces = preg_split('/\s+/', $curLine);

編集 2: 各行のラベルとハイパーリンクの間の実際のセパレーターが 1 つまたは複数のタブであり、ラベルにスペースが含まれる場合 (以下の Fred のコメントを参照)、行を次のように変更します。

$pieces = preg_split('/\t+/', $curLine);

これにより、preg_split がスペースを含むラベルを分割するのを防ぎます。

于 2013-06-12T07:02:54.053 に答える
1
    $file1 = "test.txt";
    $lines = file($file1);
    foreach($lines as $line_num => $line)
    {
    //echo $line;
    $piece=explode(' ',$line);
    //echo $piece[0]."<br>";
    //echo $piece[1];
    echo '<a href="'.$piece[1].'">'.$piece[0].'</a><br>';
    }

ファイル「test.txt」:

Yahoo http://www.yahoo.com
Google http://www.google.com

編集

だから、少し更新:

$file1 = "updir/bookmark.txt";
$lines = file($file1);
foreach($lines as $line)
{
    $piece=explode(" ",$line);
    $link=trim($piece[1]);
    $text=trim($piece[0]);
    echo '<a href="'.$link.'">'.$text.'</a><br>';
}
于 2013-06-12T07:07:13.303 に答える