2017-07-26 45 views
0

我正在圈圈。我想爲一個span標籤搜索一個字符串,然後用一個替代版本替換它,最後打印所有更改的列表。搜索PHP字符串,然後匹配並替換SPAN標記的所有實例

我希望這有助於向某人展示我正在嘗試做什麼......看上了挑戰嗎?

// create array to hold tooltips 
$tips = array(); 

// search $content string and add all matching strings to $tips array 
$haystack = $content; 
$needle = '<span class="has-tip">['.ADD THIS TO $tips ARRAY.']</span>'; 

// print $content and string replace as such... 
$replace = '<span class="has-tip">['.$tips[$i].']</span>'; 
$with = '<a href="#_ftn'.$i.'" name="_ftnref'.$i.'"><span data-tooltip aria-haspopup="true" class="has-tip top" data-disable-hover="false" tabindex="'.$i.'" title="'.$tips[$i].'">['.$i.']</span></a>'; 

print $content; 

// list all tooltips 
echo '<ul>'; 
foreach ($tips as $key => $tip) { 
    echo '<li><a href="#_ftnref'.$key.'" name="_ftn'.$key.'">['.$key.']</a> '.$tip.'</li>'; 
} 
echo '<ul>'; 
+2

也許如果你能告訴我們數據 - 原始輸入和期望的輸出 - 我們可以幫助代碼。 –

+0

謝謝雷... http://4ipcouncil.com/footnotes.html – Ben

+0

請幫忙嗎? – Ben

回答

0

好吧,想想我明白了,任何人都可以改善這一點嗎?謝謝

// create array to hold tooltips 
$tips = array(); 

$dom = new DOMDocument; 
$dom->loadHTML($content); 
foreach ($dom->getElementsByTagName('span') as $tag) { 
    if ($tag->className = 'has-tip') { 
    $tips[] .= $tag->nodeValue; 
    } 
} 

$footnoted = $content; 

foreach ($tips as $key => $tip){ 
    $i = $key + 1; 
    $footnoted = str_replace('<span class="has-tip">'.$tip.'</span>', '<a href="#_ftn'.$i.'" name="_ftnref'.$i.'"><span data-tooltip aria-haspopup="true" class="has-tip top" data-disable-hover="false" tabindex="'.$i.'" title="'.$tip.'">['.$i.']</span></a>', $footnoted); 
} 

print $footnoted; 

// list all tooltips 
echo '<ul class="footnotes">'; 
foreach ($tips as $key => $tip) { 
    $t = $key + 1; 
    echo '<li><a href="#_ftnref'.$t.'" name="_ftn'.$t.'">['.$t.']</a>&nbsp;'.$tip.'</li>'; 
} 
echo '<ul>'; 
相關問題