2012-09-27 49 views
1

我試圖解析一個字段,其中有一些字母和數字的圖像。它可能是段落的首字母,該字母的幻想圖像,或者可能是字母或數字在文本中間有圖像替換。例如,短語如何解析散佈在HTML DOMDocument文本中的圖像?

"Four scores and 7 years ago" 

<img src=/img/F.png>our scores and <img src=/img/7.png"> years ago 

用圖像替換一些字母和數字。

我正確地能夠解析字母或數字,我想用文本字段替換圖像,但我不太明白我應該如何去做。這是基於關閉的例子在PHP文檔:

if (! strcmp('Text Field', $label)) { 
    $img_tags = $divs->item($i + 1)->getElementsByTagName('img'); 
    $num_images = $img_tags->length; 

    for ($img = 0; $img < $num_images; $img++) { 
     if ($img_tags->item($img)->hasAttributes()) { 
      $img_tag = $img_tags->item($img)->getAttribute('src'); 
      if (preg_match('/name=([a-zA-Z0-9])/', $img_tag, $matches)) { 
       // XXX So here I have $matches[1] which contains the letter/number I want inserted into the parent node in the exact place of the <img> tag 
       $replacement = $page->createTextNode($matches[1]); 
       $img_tags->item($img)->parentNode->replaceChild($replacement, $img_tags->item($img)); 
      } 
     } 
    } 
} 

擴展的例子:

可以說,我打出一行這樣:

<div class="label">Title</div> 

我知道下一個字段將是文本字段

<div class="value"> 
    <img src=/img/F.png>our scores and <img src=/img/7.png"> years ago 
</div> 

我試圖抓住段落並將圖像轉換爲我從圖像名稱解析出的字母。

+0

請給這裏的html代碼的文本示例。這會讓問題更容易理解。 – arkascha

+0

當然,可以說我打出一行這樣: ''

Title
我知道下一場會是一個文本字段 ''
our scores and years ago
我試圖抓住段落,並把圖像變成字母我從圖像名稱解析。 – user1703991

+0

感謝您的補充信息。然而,我們仍然無法理解你正在嘗試做什麼。你給的html標記和你上面引用的php代碼之間的連接在哪裏? $ label,$ divs從哪裏來?缺少重要信息,因此無法給出答案。 – arkascha

回答

1

可能使用str_replace是更好的方法。

$source = "<img src=/img/F.pNg>our scores and <img src=/img/7.png\"> years ago"; 

preg_match_all("/<.*?[\=\/]([^\/]*?)\.(?:png|jpeg).*?>/i", $source, $images); 

$keys = array(); 
$replacements = array(); 

foreach($images[0] as $index => $image) 
{ 
    $keys[] = $image; 
    $replacements[] = $images[1][$index]; 
} 

$result = str_replace($keys, $replacements, $source); 

// Returns 'Four scores and 7 years ago' 
print($result . PHP_EOL); 
相關問題