1

私の開発者は休暇に出かけていて、XMLサイトマップジェネレーターからphp拡張機能を削除する方法を見つけようとしています。

変更が必要なコードは次のとおりです。

    //remaining main pages:
$pages=array();
$query="SELECT DISTINCT strona FROM `sites_table`";
if($result=$GLOBALS['mysql']->query($query))
{
    $i=0;
    while($row=$result->fetch_assoc())
    {
        if($row['site']!="/index.php")
        {
            $pageName=substr($row['site'],1);
            array_push($pages,$pageName);
            write(insertIntoTemplate($pageName,"0.8","hourly"));
        }
    }
    $result->free();
}
else 
    echo $dbErrorMsg;

MySQLクエリは、news.php、sports.php、politics.phpなどのサイトの配列を出力するだけです。

必要なのは、この.php拡張子を削除することだけです;)特別な.htaccessファイルを使用して既に削除しましたが、.php以外のサイトを使用していることをGoogleに通知する必要があります。

4

3 に答える 3

0

すべての .php を空の文字列に置き換えても問題ない限り、これはうまくいくはずです。これは、アプリケーションに存在する可能性のあるエッジ ケースを考慮していません。不明な点がある場合は、開発者と話し合ってこれを確認する必要があります。

//remaining main pages:
$pages=array();
$query="SELECT DISTINCT strona FROM `sites_table`";
if($result=$GLOBALS['mysql']->query($query))
{
    $i=0;
    while($row=$result->fetch_assoc())
    {
        if($row['site']!="/index.php")
        {
            //do a string replace of all occurrences of .php 
            $pageName=substr(str_replace('.php','',$row['site']),1);
            array_push($pages,$pageName);
            write(insertIntoTemplate($pageName,"0.8","hourly"));
        }
    }
    $result->free();
}
else 
    echo $dbErrorMsg;
于 2012-07-02T22:29:07.873 に答える
0

行を変更できるはずです:

$pageName=substr($row['site'],1);

に:

$pageName=substr($row['site'],1, -4);

注: このコードは最後の 4 文字を削除するだけです。拡張子が必要な場所や、.php モデルに従わないアイテムなどがある場合、サイトの他のセクションが壊れる可能性があります。

于 2012-07-02T22:07:29.827 に答える
0

$pageName は他のページにも使用されているようです。そのため、この方法で実行したところ、エラーは発生しませんでした。

            //do a string replace of all occurrences of .php 
            $pageName=substr($row['site'],1);
            array_push($pages,$pageName);
            $pageName2=substr(str_replace('.php','',$row['site']),1);
            array_push($pages,$pageName);
            write(insertIntoTemplate($pageName2,"0.8","hourly"));
于 2012-07-03T09:02:47.040 に答える