2016-11-13 3 views
-1

数字のリストを含む単純なHTMLページがあります。以下のページで文字列内の数字を同じ番号のリンクに置き換える方法

ルック:このように23、509、209、11、139、68、70-72、50、409-412

私はすべての番号を交換したい、またはそのようなハイパーリンクと範囲:

<a href="www.mysite.com?page=23">23</a>, <a href="www.mysite.com?page=509">509</a> ..... <a href="www.mysite.com?page=409">409-412</a>

数は2つだけと3桁であり、第一及び除くカンマで囲まれ最後にそして、391-397

+4

お試しください。 – Toto

+0

数字をどうやって見つけたのか、数値を変数に取り込む方法が分かっていれば(あるいは数値を変数にも入れていますか?)、助けが簡単になります。 –

+0

これを行うにはPHPまたはJavaScriptを使用する必要がありますが、HTMLだけで問題を解決することはできません –

答えて

0

PHP preg_replace()を使用して、あなたが望むことを達成することができます。

$original_string = 'Look at the following pages: 23, 509, 209, 11, 139, 68, 70-72, 50, 409-412'; 

$updated_string = preg_replace(
    '~((\d{2,3})(\-\d{2,3})?)~', 
    '<a href="//www.mysite.com?page=$2">$1</a>', 
    $original_string 
); 

echo $updated_string; 

hereを参照してください。

preg_replace()の第1引数で()セクションは$1$2などと二番目の引数で参照することができ...第囲まれた部分($1)「は、ページ番号またはページ範囲(「23」であり、70〜 72」)。 2番目の囲まれたセクション($2)は、ページ番号またはページ範囲の最初の番号です。

正規表現のオンラインに関する詳細については、多くのリソースがあります。hereと書かれた正規表現を使用して遊ぶことができます。

0

のようないくつかの範囲は、これが唯一である場合、ソース文字列のパターンの確認

$numbers = "23, 509, 209, 11, 139, 68, 70-72, 50, 409-412"; 
$output = ""; 
$numbers = explode(",",$numbers);//split the string into array (NOTE:only if you trust the pattern of the string) 

foreach($numbers as $number){ 
    $number = str_replace(" ","", $number); // remove the space that is after the comma if there is 
    $range = explode("-",$number); // if it is a range it will be splitted 
    $output .= "<a href='www.mysite.com?page=".$range[0]."'>$number</a> "; 
} 
echo $output; 

HTML注:このwww.mysite.comようにhref属性を作成すると、ブラウザはそれはのトレイルになります現在のドキュメントの場所後の値は、私がそれを推測し、この

https://www.example.com/currentlocation/www.mysite.com?page=23 

のようなものになるだろうことはあなたが望むものである

<a href='https://www.example.com?page=23'> 
関連する問題