说明一下,用下面的函数如果不对字符串处理是无法分离出来的function GetHtmlArea($stag,$etag,$html){
    if($html==""){ return ""; }
    $posstart = strpos($html,$stag);
    if($posstart===false){ return ""; }
    $posend = strpos($html,$etag,$posstart);
    if($posend > $posstart && $posend!==false){
 return substr($html,$posstart+strlen($stag),$posend-$posstart-strlen($stag));
    }else{
      return "";
    }
}

解决方案 »

  1.   

    $='区 ';删除区后$=' ';结果区域一点也没小, 好像是那个空格是 TAB , 结构分离字符串就总是出错。郁闷。谁有办法啊这个删除后,留有空格或者tab的问题和你下面给出代码有什么关系?
      

  2.   

    用str_replace把 /\s+/ 替换掉就行了
      

  3.   

    就像读出来宣武区 ,但 GetHtmlArea(“<th>城区与地址</th>
    <td>”,“ ”,$html) 无法读出来,  宣武区   太平桥西里 应该是这样的格式。不知道怎么拷贝后就没了格式
      

  4.   

    <?php
    function GetHtmlArea($stag,$etag,$html){
       if($html==""){ return ""; }
       $posstart = strpos($html,$stag);
       if($posstart===false){ return ""; }
       $posend = strpos($html,$etag,$posstart);
       if($posend > $posstart && $posend!==false){
     return substr($html,$posstart+strlen($stag),$posend-$posstart-strlen($stag));
       }else{
        return "";
       }
    }$content = '<tr>
    <th>城区与地址</th>
    <td>
    宣武区太平桥西里</td>
    </tr>
    <tr>
    ';echo GetHtmlArea("<th>城区与地址</th>
    <td>","</td>",$content);
    ?>
    out:宣武区太平桥西里有什么问题吗?
      

  5.   

    http://www.idea2gold.cn/test.htm   例如这个,看是否可以分开
      

  6.   

    function getValue($str, $start, $end, $start_num=1, $end_num=1)
    {
    if($start_num < 1)
    {
    return getValueRev($str, $start, $end);
    }
    if(empty($str))return "";
    if(empty($start))return "";
    if(empty($end))return "";
    $pos1 = 0;
    for($i=0; $i<$start_num; $i++)
    {
    $pos1 = strpos($str, $start, $pos1);
    if($pos1===false)
    {
    return "";
    }
    $pos1 = $pos1 + strlen($start);
    }
    $pos2 = $pos1;
    for($i=0; $i<$end_num; $i++)
    {
    $pos2 = strpos($str, $end, $pos2 + 1);
    if($pos2===false)
    {
    return "";
    }
    }
    return substr($str, $pos1, $pos2 - $pos1);
    }$data = file_get_contents("http://www.idea2gold.cn/test.htm");
    $data = preg_replace("/\s+/"," ", $data);
    $area = getValue($data, "<th>城区与地址</th>", "</td>");
    $area = strip_tags($area);
    echo trim($area);
    是这个意思吗