Regex PHP:从其他网站获取特定内容

I'm writing a PHP script that will fetch specific codes from the other site.

All is done and its fetching a div which has a class and showing it on my page.

$title = '#\<div class="detailBox"\>(.+?)\<\/div\>#s';
preg_match($title, $page, $titles);
echo $titles[0];

But when I try to fetch from a table it shows nothing

The content on the other site is like this:

<tr>
   <th scope="row">開催時間</th>
   <td>10:30~17:00</td>
</tr>

And I'm using this code to fetch it:

$date = '#\<tr\><th scope="row"\>開催時間<\/th\><td\>(.+?)\<\/td\><\/tr\>#s';
preg_match($date, $page, $dates);
echo $dates[0];

I have tried $date = '#\<th scope="row"\>開催時間<\/th\>#s'; and it works but not if I add <td> in it.

What I'm doing wrong?

donglang9880
donglang9880 为什么我的问题有-2减分。我认为我的问题是恰当的。
大约 5 年之前 回复

2个回答

You need to turn on the unicode modifier u and also match the inbetween line breaks.

$date = '#<tr>\s*<th scope="row">開催時間</th>\s*<td>(.+?)</td>\s*</tr>#su';
preg_match($date, $page, $dates);
drjtua5953
drjtua5953 是的,你需要使用preg_match_all
大约 5 年之前 回复
dpoxk64080
dpoxk64080 谢谢Avinash :) ...如果有多个tr怎么办? ......那我应该使用preg_match_all()吗?
大约 5 年之前 回复
dongpu7881
dongpu7881 demo regex101.com/r/nY2iD7/1
大约 5 年之前 回复

and escape the metacharacters $date = '#\\開催時間\</th>\(.+?)\</td></tr>#s'; preg_match($date, $page, $dates);

douxue7196
douxue7196 在回答有关Stack Overflow的问题时,它们应该是完整的答案。 如果您要添加其他人的答案,请随时在底部添加您的修改作为评论。 答案显示在页面上的顺序可能会发生变化,因此如果您需要引用其他答案,最好参考发布原始答案的人员的姓名。
大约 5 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问