【问题标题】:PHP remove part of a url in an array element [duplicate]PHP删除数组元素中的部分url [重复]
【发布时间】:2015-07-04 21:27:22
【问题描述】:

我有一个.csv 文件,我已将其转换为数组$outputData。每个数组的第 6 个$data[6] 元素包含一个图像文件路径,例如

http://images.pleaserusa.com/pic/unique.image.jpg 

我需要删除每个图像的文件路径http://images.pleaserusa.com/pic/,只留下图像名称本身,例如

unique.image.jpg 

我在这里和谷歌上看过并尝试使用preg_match()str* 函数,但我并没有真正使用它。

Rizer123 我已经放置了“basename”函数,但无法在元素内替换它。我只能让它在数组之外回显/打印/我已经将代码放在下面,并在下面放了一个摘录数组。

domina-456-b.jpgArray
(
    [0] => DOM456/B
    [1] => 6" Lace-Up Pump W/ D-Ring&Ribbon Lace
    [2] => Devious
    [3] => Single Soles
    [4] => DOMINA-456
    [5] => Blk Pat
    [6] => http://images.pleaserusa.com/pic/domina-456-b.jpg
    [7] => 5-15
)
domina-460-b.jpgArray
(
    [0] => DOM460/B
    [1] => 6" Oxford Lace Up Pump
    [2] => Devious
    [3] => Single Soles
    [4] => DOMINA-460
    [5] => Blk Pat
    [6] => http://images.pleaserusa.com/pic/domina-460-b.jpg
    [7] => 5-16
)

<?php 

$input = 'Parser/Inv_item.csv';
$output = 'hd_inv_items.csv';

if (false !== ($ih = fopen($input, 'r'))) {
    $oh = fopen($output, 'w');
    header('Content-Type: text/plain');
while (false !== ($data = fgetcsv($ih))) {
    // this is where you build your new row
    $outputData = array($data[0], $data[1], $data[2], $data[3],   $data[5],$data[6], $data[9], $data[8]);

$path = $data[9];
$name = basename($path); // $name == '1.jpg'

print_r($name);

print_r($outputData);

//fputcsv($oh, $outputData);        

}   
fclose($ih);
fclose($oh);
}

?>

如您所见,图像文件路径仍在数组中,并且基本名称结果在数组之外打印。我该如何解决这个问题

问候琵琶行

【问题讨论】:

  • 请将您的尝试添加到您的问题中!还请包括您的数组的结构!

标签: php arrays url replace


【解决方案1】:

不需要爆炸或字符串操作,一个简单的basename() 就足够了:

$path = 'http://images.pleaserusa.com/pic/unique.image.jpg';
echo basename($path);

输出:

unique.image.jpg

pathinfo() 也可以:

echo pathinfo($path, PATHINFO_BASENAME);

【讨论】:

  • 回答没有表现出任何努力的问题,你就是支持这种行为!
  • @Rizier123 我很抱歉,有时我会受到诱惑,我对此很感兴趣,尤其是在答案领域,有一个更简单的方法。大声笑
  • 特别是在答案领域,有一个更简单的方法 basename() 来回答,如果你还没有发布它并且其他答案太复杂了)
【解决方案2】:

我总是用explode() 这样做

$url = "http://images.pleaserusa.com/pic/unique.image.jpg";
$parts = explode("/",$url);
$pic = $parts[count($parts)-1];

不客气 ;-)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-01
    • 1970-01-01
    • 2018-02-14
    • 1970-01-01
    • 2014-01-18
    • 1970-01-01
    • 1970-01-01
    • 2011-03-22
    相关资源
    最近更新 更多