ホームページ  >  記事  >  バックエンド開発  >  乱数を使用して記事内の複数の URL をローテーションします。各 URL の背後にある乱数が異なる必要があります。

乱数を使用して記事内の複数の URL をローテーションします。各 URL の背後にある乱数が異なる必要があります。

WBOY
WBOYオリジナル
2016-06-13 13:23:42817ブラウズ

乱数を使用して記事内の複数の URL を置き換えます。各 URL の背後にある乱数が異なる必要があります
データベースには多数の記事があります。記事内に多数の URL があります
URL の後に乱数を追加したいのですが、各 URL の後の乱数は異なる必要があります。

置換を書きましたが、結果は各 URL の後の乱数が置換後も同じになります

for($i=1;$i<=60;$i++) {
$duoyu=rand(1,111);
$res->fn_sql("update content set body=replace(body,'com','com$duoyu') where helps='$i'" ) ;
}

助けてください

-----解決策------ ---
上記のコードは、ループ内で生成される乱数が一意であることを保証しません。要件がより厳しい場合は、コードを変更する必要があります:

PHP コード
関数 addRandNumber($matches) {
    グローバル $ar;
    $n = ランド(1, 111);
    while(in_array($n, $ar)) $n = rand(1, 111);
    $ar[] = $n;
    $matches[1].$n を返します。
}
$body = "url_com
url_com
url_com"; $ar = 配列(); $body = preg_replace_callback( "|(com)+?|", 'addRandNumber', $body);
------解決策------------------
jQueryで実装してみます。とてもシンプルです。

$("A").each(function(index, obj)
{
$(obj).attr("href", $(obj).attr("href") +"?rand="+数学,ランダム);
})
------解決策------------------

ディスカッション

常に非常に多くの CSDN 専門家がいることがわかります
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。