下面这段简单的截取代码为什么输出结果有< ? strpos函数用错了吗?

zairwolfb 2006-08-20 08:58:48
<?

$a=<<<eot
12345<h1>七弦月</h1>12345
eot;

function rsubstr($fd,$start,$end){
$startpos = strpos($fd,$start)+strlen($start);
$endpos = strpos($fd,$end,$startpos);//截取标记
echo "||$startpos-$endpos ||";Return substr($fd,$startpos,$endpos-$startpos);
}
echo rsubstr($a, '<h1>','</hl>' );

...全文
194 8 打赏 收藏 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
SysTem128 2006-08-21
  • 打赏
  • 举报
回复
<?

$a=<<<eot
12345<h1><h1>七七七七七七七七七七七七七七七</h1></h1>12345
eot;

function rsubstr($fd,$start,$end){
$startpos = strpos($fd,$start)+strlen($start);//9
$endpos = strpos($fd,$end,$startpos)-1;//截取标记
//echo "||$startpos-$endpos ||";
echo substr($fd,$startpos,$endpos-$startpos);
}
echo rsubstr($a, '<h1>','</hl>' );
?>

数学问题哈哈……

zairwolfb 2006-08-21
  • 打赏
  • 举报
回复
rt
zairwolfb 2006-08-21
  • 打赏
  • 举报
回复
严重惭愧。
zairwolfb 2006-08-21
  • 打赏
  • 举报
回复
<?
$a=<<<eot
aaaaaaaa zairwolf七弦月b/h1a</td>
eot;

$b=array('zairwolf','b/hla');

echo rsubstr($a,$b[0],$b[1]);

function rsubstr($fd,$start,$end){
$startpos = strpos($fd,$start)+strlen($start);
$endpos = strpos($fd,$end);
Return substr($fd,$startpos,$endpos-$startpos);
}
ice_berg16 2006-08-21
  • 打赏
  • 举报
回复
你第一个的错误是在于
echo rsubstr($a, '<h1>','</hl>' );
这行代码中</hl>应该是</h1>;
把数字1写成字母l了
gu1dai 2006-08-21
  • 打赏
  • 举报
回复
$endpos-$startpos

->

($endpos-$startpos)
Mistruster 2006-08-21
  • 打赏
  • 举报
回复
$a=<<<eot
12345bb七七七七七七七七七七七七七七七1aeeabc12345
eot;
function rsubstr($str, $start, $end)
{
$pos = strpos($str, $start);
if($pos === false) return "";
$a = $pos + strlen($start);
$b = strpos($str, $end, $a);
if($b === false) return "";
return substr($str, $a, $b - $a);
}
echo rsubstr($a, 'bb','abc' );
zairwolfb 2006-08-21
  • 打赏
  • 举报
回复
无语。你看看源代码,后面根本没有截干净。跟你这样示范下:

<?

$a=<<<eot
12345bb七七七七七七七七七七七七七七七1aeeabc12345
eot;

function rsubstr($fd,$start,$end){
$startpos = strpos($fd,$start)+strlen($start);//9
$endpos = strpos($fd,$end,$startpos)-1;//截取标记
//echo "||$startpos-$endpos ||";
echo substr($fd,$startpos,$endpos-$startpos);
}
echo rsubstr($a, 'bb','abc' );
?>

截的结果根本不对。

21,889

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧