2016-07-07 15 views
-1

私はどちらかhttp://www.mydomain.co.uk/page.htmlためPHP検索と置換場所のURLと拡張

検索HTMLににpreg_replaceまたは正規表現を使用するか、

を/page.htmlとして.htmlを交換する方法の例を探してきました.APP

は、私は私だけが私たちのウェブサイトからページを使用するアプリを持っているこのサイト

に属するページ上の.htmlを交換したいです。私はアプリからページをリンクするときに.appを置くことで、書式を削除/変更します。どちらが機能するのか、私はページ上のリンクを動的に編集したいだけです。

乾杯

+0

あなたの質問は十分に明らかではないが、正しい方向に私を指摘しました。あなたはサーバー側でそれをやりたいと思いませんか?何を試しましたか?いくつかのコード? – Alsatian

答えて

0

で動作し、これを試してみてください、私が割れましたそれ。 リンクをhtmlで検索し、リンクがサイトに属しているかどうかを確認します。 リンク内で ".html"を ".app"に置き換えてください。 古いリンクはhtml内の新しいリンクで置き換えられます。

みんなありがとう、あなたは

function searchHTML($html){ 
// if the page is used by the app replace all domain pages .html with .app 

     $domain ='mydomain.com'; 
     $regEX = '/<a[^>]+href=([\'"])(.+?)\1[^>]*>/I'; 
     preg_match_all($regEX, $html, $match); //check page for links 
     for($l=0; $l<=count($match[2]); $l++){ //loop through links found 
      $link = $match[2][$l];//url within href 
      if ((strpos($link, $domain) !== false) || ($link[0]=="/")) { //check links are domain links(domain name or the first char is /) 
       $updateLink = str_replace(".html", ".app", $link);//replace .html ext with .app ext 
       $html = str_replace($link, $updateLink, $html); //update html with new links 
      }  
     }   

    return $html; 
} 
-2
<?php 

// it's important to use the $ in regex to be sure to replace only the suffix and not a part of the url 

function change_url($url, $find, $replace){ 
    return preg_replace("#\\.".preg_quote($find, "#")."$#uim", ".".$replace, $url); 
    } 

echo change_url("http://www.mydomain.co.uk/page.html", "html", "app"); 

//retuns http://www.mydomain.co.uk/page.app 

?> 
-1

はPHP 4興味のある人のためのOK> = 4.0.5

<?php 
    $string = "http://www.mydomain.co.uk/page.html"; 
    $string = preg_replace_callback("/mydomain.co.uk\/.+?(html)$/", "replace", $string); 

    function replace($matches) { 
     return str_replace("html", "app", $matches[0]); 
    } 

    echo $string; 
+1

コードはしばしば自分自身で話しますが、コードに説明を追加するとよいでしょう。これは、レビュー専用のキューにポップアップされました。コード専用の回答が多いようです。 – Will