$pattern = "/(?i)\b((?:https?:\/\/|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'\".,<>???“”‘’]))/"; $str = file_get_html($_GET['url'])->plaintext; if($num_found = preg_match_all($pattern, $str, $out)) { print_r($out[0]); } Output Array ([0] => https://ssl.gstatic.com/gb/images/b_8d5afc09.png [1] => https://ssl.gstatic.com/gb/images/b8_3615d64d.png [2])因此,現在我想查找以下任何鏈接是否包含某些特定單詞,例如“b_8d5afc09”,然后我想獲取該鏈接并僅顯示該鏈接。到目前為止,我已經嘗試過使用“in_array”,但即使鏈接存在,它也永遠找不到,我做錯了什么嗎?任何建議表示贊賞!if (in_array("b_8d5afc09", $out[0])) { echo "found"; } else { echo "nope"; }
1 回答

慕森王
TA貢獻1777條經驗 獲得超3個贊
該函數in_array檢查完整的針是否等于數組的一個值。不只是一部分。你可以strpos這樣工作:
foreach( $out[0] as $value ) {
if( strpos( $value, 'b_8d5afc09' ) !== false ) {
echo "found in $value";
break;
}
}
- 1 回答
- 0 關注
- 104 瀏覽
添加回答
舉報
0/150
提交
取消