逐行替换字符串变量在其他变量中包含此字符串

时间:2014-09-16 08:44:37

标签: php

我的变量包含很长的列表,此列表的每一行都是唯一的,例如:

$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进行比较,但是当我要替换许多变量时,这不是一个很好的解决方案。

1 个答案:

答案 0 :(得分:2)

您必须在新行(explode)上PHP_EOL列表以获取一个URL数组,然后检查该变量是否是任何URL的子字符串(使用{ {1}}):

strpos

输出:

  

http://example.com/ds543gfd/church.jpg

此代码将返回与变量匹配的第一个URL。如果您想要最后一个,请删除foreach (explode(PHP_EOL, $list) as $url) { if (strpos($url, $variable) !== false) { $variable = $url; break; } } echo $variable; ,或使用数组存储您找到的任何相应网址。