【问题标题】:Copying some parts of html code and making other link in PHP复制部分 html 代码并在 PHP 中创建其他链接
【发布时间】:2014-12-26 10:13:42
【问题描述】:

我想在php中做一个函数,我可以用一个例子来解释我想要什么:

HTML 代码:

<?php
$html= '
<td id="rsO"><a href="./go.php?q=link"><img height="89" src="http://example.org/1.jpg" width="134"></a><br><cite title="default title">website</cite><br>a picture from america<br>567 × 378 - 47k&nbsp;-&nbsp;jpg</td>
<td id="rsO"><a href="./go.php?q=link"><img height="89" src="http://example.org/1.jpg" width="134"></a><br><cite title="default title">website</cite><br>a picture from germany<br>567 × 378 - 47k&nbsp;-&nbsp;jpg</td>
';
?>

结果:

<td id="rsO"><a href="./go.php?q=link&keyword=a picture from america"><img height="89" src="http://example.org/1.jpg" width="134"></a><br><cite title="default title">website</cite><br>a picture from america<br>567 × 378 - 47k&nbsp;-&nbsp;jpg</td>
<td id="rsO"><a href="./go.php?q=link&keyword=a picture from germany"><img height="89" src="http://example.org/1.jpg" width="134"></a><br><cite title="default title">website</cite><br>a picture from germany<br>567 × 378 - 47k&nbsp;-&nbsp;jpg</td>

如您所见,一张来自美国的图片一张来自德国的图片被复制到链接中:

...<br>a picture from america<br>...
<a href="./go.php?q=link&keyword=a picture from america">


...<br>a picture from germany<br>...
<a href="./go.php?q=link&keyword=a picture from germany">

有上千个这样的 html 代码,我想将它们全部复制到链接中而不会中断。 谢谢。

【问题讨论】:

  • “来自美国的图片”将始终在 &lt;br&gt; 中?
  • 是的。和所有在 td 中,像这样。 &lt;td&gt;&lt;a href="link"&gt;&lt;/a&gt;&lt;br&gt;a pic&lt;br&gt;&lt;/td&gt;
  • 你确定在 中只有一组
    因为我会在 标记之前看到一个
    ..
  • 我编辑了我的问题,再读一遍。在&lt;td&gt;&lt;/td&gt; 一张来自美国的图片一张来自德国的图片将被复制到链接中。
  • 可以在这段代码&lt;/cite&gt;&lt;br&gt;...a pic...&lt;br&gt;之间

标签: php html preg-match preg-match-all


【解决方案1】:

我不知道这有多有效,但我希望有人能做得更好

 <?php

$html = '
<td id="rsO"><a href="./go.php?q=link"><img height="89" src="http://example.org/1.jpg" width="134"></a><br><cite title="default title">website</cite><br>a picture from america<br>567 × 378 - 47k&nbsp;-&nbsp;jpg</td>
<td id="rsO"><a href="./go.php?q=link"><img height="89" src="http://example.org/1.jpg" width="134"></a><br><cite title="default title">website</cite><br>a picture from germany<br>567 × 378 - 47k&nbsp;-&nbsp;jpg</td>
';

$strs = array();
$strsCounter = 0;

function collect_keyword($matches) {
    global $strs;
    $strs[] = $matches[0];
    return $matches[0];
}

$patterns = array('/([A-Za-z\s-_]+(?!<\/cite><br>)(?=<br>\d*))/');
preg_replace_callback($patterns, collect_keyword, $html);

function generate_link($matches) {
    global $strs, $strsCounter;
    $return = $matches[0] . '&keyword=' . $strs[$strsCounter];
    $strsCounter++;
    return $return;
}

$patterns = array('/(\.\/go\.php\?q=link)/');
$line = preg_replace_callback($patterns, generate_link, $html);
echo '<table><tr>' . $line . '</tr></table>';
?>

【讨论】:

  • 我认为你是世界上最好的 php 程序员,没有人可以制作这些 php 代码。非常感谢。
猜你喜欢
  • 2023-02-01
  • 2013-08-04
  • 1970-01-01
  • 2015-04-20
  • 1970-01-01
  • 2019-02-24
  • 1970-01-01
  • 1970-01-01
  • 2016-08-27
相关资源
最近更新 更多