2013-10-02 39 views
0

我需要替換從另一個站點通過curl拍攝的頁面中的URL。我的PHP捲曲代碼是;preg_replace修改來自curl的URLs

<?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; 

?> 

此代碼工作正常,直到url具有除id以外的任何數字字符。沒有任何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命令,html看起來像;

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

Bu它必須是這樣的東西;

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

只有id必須保留,所有其他的東西必須刪除。有人可以幫我嗎?

更新:頁面的標題動態變化,最後6位是id,唯一的東西必須保留在url中。

+0

你的2個碼看 –

+0

更新相同的,我很抱歉。 – user2834975

+0

檢查答案 –

回答

0

用戶PHP的正則表達式:

/\d{6}/ 

結果:

<?php 
    $str='<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_match("/\d{6}/", $str, $matches); 
    $st = $matches[0]; 

    echo '<div class="swiper-slide red-slide"> 
     <div class="title"><a href="http://www.externalwebsite.com/read_curl?id='.$st.'" class="image"> 
    <img src="http://www.externalwebsite.com/d/news/94406.jpg"/></a></div></div>'; 

    ?> 
+0

更新 - 檢查出 –

+0

謝謝,但「標題爲3頁」動態變化,我需要清除之前的id(最後6位數字)的一切。 – user2834975

+0

你應該給這樣的描述 - 任何方式等待 –