我的变量包含很长的列表,此列表的每一行都是唯一的,例如:
$list = "http://example.com/xcvdre4a/our_trip-2014.jpg
http://example.com/awe38fd/weeding.jpg
http://example.com/ds543gfd/church.jpg"
我有foreach
脚本,我希望将$variable
中的单词替换为上面列表中的完整链接:
$variable = "church.jpg";
// use the word from $variable to find a link from $list and replace $variable.
echo $variable;
// should be "http://example.com/notsorted/church.jpg"
我该怎么做?
我想将$list
更改为数组,并将每个数组值与$variable
进行比较,但是当我要替换许多变量时,这不是一个很好的解决方案。
答案 0 :(得分:2)
您必须在新行(explode
)上PHP_EOL
列表以获取一个URL数组,然后检查该变量是否是任何URL的子字符串(使用{ {1}}):
strpos
输出:
此代码将返回与变量匹配的第一个URL。如果您想要最后一个,请删除foreach (explode(PHP_EOL, $list) as $url) {
if (strpos($url, $variable) !== false) {
$variable = $url;
break;
}
}
echo $variable;
,或使用数组存储您找到的任何相应网址。