删除选择的类

时间:2012-12-21 14:10:15

标签: php class

我的问题如下:我正在解析或抓取或者某种类型的字典使用它的输出作为我的输入(换句话说,我显示定义)。在此输出中,包括几个类。有一个类,类f,包括定义的术语,以及跟随它的点。这个点打扰了我,我想擦除它。

enter image description here

<p class="p">

<a href="search?id=D536ScxxE2x5wsXG0ez" target="_self"><img align="right" alt="Ver artículo enmendado" border="0" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAH0AAAAZBAMAAADuyzxaAAAAElBMVEWEAgT8/vz8QkT8AgS8AgT8enxcJRi+AAAA0klEQVQ4y82SwQ3DMAhFOWQBxAJVqwyAWCCHjJDuv0r5OImR2hxqLkEWXxAeBis0vyu20LOCb85XBlidLwywBT8+wBr8y0btNrweGWmifIWwdN/5vVzOPpe8SveJl3z737x6zMJuoq7CzqOlQlhZkRGoQqz5xBty3sULw1kgFoAHbpFEs34S70UeN9QSz2ez6NOwb17sgu8Bypsq/+CB7nyevwf+zfLwmde2ItZgjbGx6fl+sbzE+2GN49zp/y3xNGwT+Mc4T+ALOE0LVa4nWqhoH2NuCULPEni8AAAAAElFTkSuQmCC"></a>

<span class="f">

<b>gas</b>

</span>

<span class="f">

<b>.</b>

</span>

</p>

请注意,我们正在彻底使用php,所以万一你需要它,这里就是:

<?php
    $word = $_REQUEST['word'];


    $url = "http://lema.rae.es/drae/srv/search?val={$word}";

    $css = <<<EOT

    <style type="text/css">

    .f /* I GUESS THE PROBLEM IS OVER HERE. I CANT VISIBILITY HIDE F BECAUSE THAT WOULD HIDE "GAS", APART FROM "." */
       {
         margin-left:50px;
         font-size: 200%;
         color: #ffe200;
         font-family: 'brannboll_fetregular';

       }

    </style>
EOT;

$data = file_get_contents($url);
$data = str_replace('</head>', $css.'</head>', $data);
echo '<div id="result1"
  style="
  top: 77%;
  left: 55%;
  overflow:scroll; 
  width:400px; 
  height:300px;
  border: 1px solid #000000;
  border-radius: 15px;
  background-opacity: 0.5;
  background: #047C8F;
  -webkit-border-radius: 15px;
  -moz-border-radius: 15px;
  box-shadow: inset 0px 3px 13px #000000;
  -moz-box-shadow:
               0px 3px 13px rgba(000,000,000,0.5),
               inset 0px 0px 13px rgba(0,0,0,1);
  -webkit-box-shadow:
               0px 3px 13px rgba(000,000,000,0.5),
               inset 0px 0px 13px rgba(0,0,0,1);
 ">
 '.$data.' 
 </div>';
    ?>

1 个答案:

答案 0 :(得分:1)

有几种方法可以尝试这样做:

<强> CSS

您可以添加一条规则,指示浏览器仅显示类f的第一个范围:

span.f:not(:first-of-type) {
    display:none;
}

这在旧版浏览器中可能会失败,特别是在IE8及之前。

<强> PHP

由于看起来.是可预测的字符串,您可以简单地替换它:

$data = str_replace('<span class="f"><b>.</b></span>', '', $data);

这也适用于您的“Word Not Found”页面 - 它只会消除每个世界末尾的.

http://lema.rae.es/drae/srv/search?val=world

DOM解析

更有效的方法是查看DOM Parser。您可以在此处阅读DOM解析的简要介绍:

how to use dom php parser

基本上,您希望在第一个<span class="f">内找到第二个<p>