2013-10-01 38 views
1

我想用curl在php中替換頁面中的url。preg_replace url獲取編號

網址喜歡;

http://www.externalwebsite.com/title-of-the-page-192345.htm 

我用$url = preg_replace('~a href="([a-z,.\-]*)~si', '"', $url);

這給了我的ID正確的,但如果在標題中使用的任何其他數字字符

例如;

http://www.externalwebsite.com/title-of-the-3-page-192345.htm 

它給了我;

3-page-192345 

輸出。在這種情況下,如何獲得頁面的正確ID。謝謝。

UPDATE:

我需要從其他網站採取的捲曲的頁面替換的URL。網址就像上面寫的一樣。

<?php 

$ch = curl_init ("http://www.externalwebsite.com/index.php"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$page = curl_exec($ch); 
preg_match('#<div class="headline"[^>]*>(.+?)</div>#is', $page, $matches); 
foreach ($matches as &$match) { 
    $match = $match; 
} 
$html=$matches[1]; 
$html = preg_replace('~a href="([a-z,.\-]*)~si', '"', $html); //NEED TO CHANGE THIS           

    echo $html; 

?> 

curl沒有任何preg_replace後頁面的HTML代碼是這樣的;

 <div class="swiper-slide red-slide"> 
    <div class="title"><a href="http://www.externalwebsite.com/title-of-the-3-page-192345.htm" class="image"> 
<img src="http://www.externalwebsite.com/d/news/94406.jpg"/></a></div></div> 

而這個網站一定是類似的東西了preg_replace命令後:

<div class="swiper-slide red-slide"> 
     <div class="title"><a href="http://www.mywebsite.com/read_curl_page.php?id=192345" class="image"> 
    <img src="http://www.externalwebsite.com/d/news/94406.jpg"/></a></div></div> 
+0

你只需要'.htm'之前的最後一個數字?需要調整RegExp我認爲... ...非常規模式匹配或類似的東西'。* - ([0-9])+ \。htm' – CD001

回答

1

使用的preg_match代替了preg_replace

<?php 

    $matches = array(); 
    $url ='http://www.mywebsite.com/title-of-the-page-192345.htm'; 
    preg_match('#http://(.*?)/(.*?)-([0-9]+).htm#', $url, $matches); 
    print_r($matches); 
    echo $matches[2]; //this will print title of page 
    echo $matches[3]; //this will print id of page 
    echo $matches[1]; //this will domain 
?> 

它輸出:

Array ([0] => http://www.mywebsite.com/title-of-the-page-192345.htm [1] => www.mywebsite.com [2] => title-of-the-page [3] => 192345) 

的preg_replace作爲其名稱 建議替換你想要的字符串獲取一些字符串信息。子模式可以在$matches數組中獲得這些信息。編號的子模式是([0-9]+),這意味着至少有1個數字。

+0

謝謝,但我必須改變我的網站頁面的URL,我使用它以獲得另一個網站頁面內容在我的網站上閱讀。要做到這一點,我必須得到頁面的特定ID並將其替換到我的網站。 – user2834975