找到确切且相似的名称和 return 一个数组 preg_match
find exact and similar name and return an array with preg_match
大家,
谁能帮忙做点什么。
我想按名称搜索列表。例如:火影忍者
不过,不仅有鸣人,还有"Naruto Shippuden"和"Boruto: Naruto Next Generations"。
现在我希望在用户搜索 "Naruto" 时显示另外两个。
<li><a href="#Naruto" title="Naruto">Naruto</a></li>
<li><a href="#Naruto-Shippuden" title="Naruto Shippuden">Naruto Shippuden</a></li>
<li><a href="#Boruto-Naruto-Next-Generations" title="Boruto: Naruto Next Generations">Boruto: Naruto Next Generations</a></li>
到目前为止,我已经试过了。
$re = '/<li><a href=".*" title="(Naruto|(.*?))">(Naruto|(.*?))<\/a><\/li>/m';
$str = '<ul>
<li><a href="serie/Boruto-Naruto-Next-Generations" title="Boruto: Naruto Next Generations">Boruto: Naruto Next Generations</a></li>
<li><a href="serie/Masou-Gakuen-HxH" title="Masou Gakuen HxH">Masou Gakuen HxH</a></li>
<li><a href="serie/Matantei-Loki-Ragnarok" title="Matantei Loki Ragnarok">Matantei Loki Ragnarok</a></li>
<li><a href="serie/Mawaru-Penguindrum" title="Mawaru Penguindrum">Mawaru Penguindrum</a></li>
<li><a href="serie/Nanbaka" title="Nanbaka">Nanbaka</a></li>
<li><a href="serie/Narutaru" title="Narutaru">Narutaru</a></li>
<li><a href="serie/Naruto" title="Naruto">Naruto</a></li>
<li><a href="serie/Naruto-Shippuden" title="Naruto Shippuden">Naruto Shippuden</a></li>
<li><a href="serie/Natsu-iro-Kiseki" title="Natsu-iro Kiseki">Natsu-iro Kiseki</a></li>
<li><a href="serie/Natsume-Yuujinchou" title="Natsume Yuujinchou">Natsume Yuujinchou</a></li>
</ul>';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
var_dump($matches);
我强烈建议您使用PHP Simple HTML DOM Parser,它很容易使用。
include_once("simple_html_dom.php");
$str = '<ul>
<li><a href="serie/Boruto-Naruto-Next-Generations" title="Boruto: Naruto Next Generations">Boruto: Naruto Next Generations</a></li>
<li><a href="serie/Masou-Gakuen-HxH" title="Masou Gakuen HxH">Masou Gakuen HxH</a></li>
<li><a href="serie/Matantei-Loki-Ragnarok" title="Matantei Loki Ragnarok">Matantei Loki Ragnarok</a></li>
<li><a href="serie/Mawaru-Penguindrum" title="Mawaru Penguindrum">Mawaru Penguindrum</a></li>
<li><a href="serie/Nanbaka" title="Nanbaka">Nanbaka</a></li>
<li><a href="serie/Narutaru" title="Narutaru">Narutaru</a></li>
<li><a href="serie/Naruto" title="Naruto">Naruto</a></li>
<li><a href="serie/Naruto-Shippuden" title="Naruto Shippuden">Naruto Shippuden</a></li>
<li><a href="serie/Natsu-iro-Kiseki" title="Natsu-iro Kiseki">Natsu-iro Kiseki</a></li>
<li><a href="serie/Natsume-Yuujinchou" title="Natsume Yuujinchou">Natsume Yuujinchou</a></li>
</ul>';
$htmlStr = str_get_html($str);
echo ('<ul>');
foreach ($htmlStr->find('a[title*="naruto"]') as $link) //find all link having the title attribute containing naruto
echo ('<li>' . $link . '</li><br />');
echo ('</ul>');
输出为HTML:
<ul>
<li><a href="serie/Boruto-Naruto-Next-Generations" title="Boruto: Naruto Next Generations">Boruto: Naruto Next Generations</a></li><br />
<li><a href="serie/Naruto" title="Naruto">Naruto</a></li><br />
<li><a href="serie/Naruto-Shippuden" title="Naruto Shippuden">Naruto Shippuden</a></li><br />
</ul>
大家,
谁能帮忙做点什么。
我想按名称搜索列表。例如:火影忍者
不过,不仅有鸣人,还有"Naruto Shippuden"和"Boruto: Naruto Next Generations"。
现在我希望在用户搜索 "Naruto" 时显示另外两个。
<li><a href="#Naruto" title="Naruto">Naruto</a></li>
<li><a href="#Naruto-Shippuden" title="Naruto Shippuden">Naruto Shippuden</a></li>
<li><a href="#Boruto-Naruto-Next-Generations" title="Boruto: Naruto Next Generations">Boruto: Naruto Next Generations</a></li>
到目前为止,我已经试过了。
$re = '/<li><a href=".*" title="(Naruto|(.*?))">(Naruto|(.*?))<\/a><\/li>/m';
$str = '<ul>
<li><a href="serie/Boruto-Naruto-Next-Generations" title="Boruto: Naruto Next Generations">Boruto: Naruto Next Generations</a></li>
<li><a href="serie/Masou-Gakuen-HxH" title="Masou Gakuen HxH">Masou Gakuen HxH</a></li>
<li><a href="serie/Matantei-Loki-Ragnarok" title="Matantei Loki Ragnarok">Matantei Loki Ragnarok</a></li>
<li><a href="serie/Mawaru-Penguindrum" title="Mawaru Penguindrum">Mawaru Penguindrum</a></li>
<li><a href="serie/Nanbaka" title="Nanbaka">Nanbaka</a></li>
<li><a href="serie/Narutaru" title="Narutaru">Narutaru</a></li>
<li><a href="serie/Naruto" title="Naruto">Naruto</a></li>
<li><a href="serie/Naruto-Shippuden" title="Naruto Shippuden">Naruto Shippuden</a></li>
<li><a href="serie/Natsu-iro-Kiseki" title="Natsu-iro Kiseki">Natsu-iro Kiseki</a></li>
<li><a href="serie/Natsume-Yuujinchou" title="Natsume Yuujinchou">Natsume Yuujinchou</a></li>
</ul>';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
var_dump($matches);
我强烈建议您使用PHP Simple HTML DOM Parser,它很容易使用。
include_once("simple_html_dom.php");
$str = '<ul>
<li><a href="serie/Boruto-Naruto-Next-Generations" title="Boruto: Naruto Next Generations">Boruto: Naruto Next Generations</a></li>
<li><a href="serie/Masou-Gakuen-HxH" title="Masou Gakuen HxH">Masou Gakuen HxH</a></li>
<li><a href="serie/Matantei-Loki-Ragnarok" title="Matantei Loki Ragnarok">Matantei Loki Ragnarok</a></li>
<li><a href="serie/Mawaru-Penguindrum" title="Mawaru Penguindrum">Mawaru Penguindrum</a></li>
<li><a href="serie/Nanbaka" title="Nanbaka">Nanbaka</a></li>
<li><a href="serie/Narutaru" title="Narutaru">Narutaru</a></li>
<li><a href="serie/Naruto" title="Naruto">Naruto</a></li>
<li><a href="serie/Naruto-Shippuden" title="Naruto Shippuden">Naruto Shippuden</a></li>
<li><a href="serie/Natsu-iro-Kiseki" title="Natsu-iro Kiseki">Natsu-iro Kiseki</a></li>
<li><a href="serie/Natsume-Yuujinchou" title="Natsume Yuujinchou">Natsume Yuujinchou</a></li>
</ul>';
$htmlStr = str_get_html($str);
echo ('<ul>');
foreach ($htmlStr->find('a[title*="naruto"]') as $link) //find all link having the title attribute containing naruto
echo ('<li>' . $link . '</li><br />');
echo ('</ul>');
输出为HTML:
<ul>
<li><a href="serie/Boruto-Naruto-Next-Generations" title="Boruto: Naruto Next Generations">Boruto: Naruto Next Generations</a></li><br />
<li><a href="serie/Naruto" title="Naruto">Naruto</a></li><br />
<li><a href="serie/Naruto-Shippuden" title="Naruto Shippuden">Naruto Shippuden</a></li><br />
</ul>