PHP:建立一个URL编码,而值存在于多数组中

罗密欧·勒加加尼(Romeo LeGagahne)

我的目标是:

如果这些数组中的值与文件的扩展名匹配,那么我可以构建一个不错的URL编码的字符串,然后可以使用该http_build_query()函数将其附加到url上如果找不到匹配项,则不返回任何内容。

我已经尝试了所有可能的方法,但它不起作用,如下面的代码所示。您能检查哪一部分不对吗?

$name = 'myfile.mp4';

$list = array(
     'video' => array('3gp', 'mkv', 'mp4'),
     'photo' => array('jpg', 'png', 'tiff')
);

// File Ext Check
$ext = (strpos($name, '.') !== false) ? strtolower(substr(strrchr($name, '.'), 1)) : '';

$type = null;
$find = $ext;

array_walk($list, function ($k, $v) use ($find, &$type) 
{
  if (in_array($find, $k))
  { 
    $type = $v;
    $data = array();

    switch ($type) 
    {
      case 'video':
         $data['title'] = 'video';
         $data['description'] = 'my video';
         break;
      case 'photo':
        $data['title'] = 'photo';
        $data['description'] = 'my photo';
        break;
    }
  }
  else {
    echo "not both!.";
    exit;
  {
});


if ($type == 'video') {
  $link = 'https://www.video.com' . http_build_query($data);
} 
else 
if ($type == 'photo') {
  $link = 'https://www.photo.com' . http_build_query($data);
}

echo $link;

谢谢...

LF00

$data已在array_walk()范围中设置,但array_walk()未定义超出范围。因此在中http_build_query($data),这里$data没有定义。

您可以在$data引用use(),然后在后面array_walk()使用其值。在您的代码中,您用于in_array()检查列表中的文件类型,为了提高性能,建议您参阅此文章

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Javascript检查元组的第一个元素是否存在于元组数组中

Laravel验证规则,如果值存在于另一个字段数组中

检查所有数组值是否存在于另一个数组值中

忽略对象中存在于JavaScript另一个数组中的键

检查数组值是否存在于另一个包含逗号分隔值的数组值中

检查一个数组中的元素是否存在于另一个数组中

Angular-渲染组件存在于根URL的另一个模块中

Python:比较列表中的值(如果存在于另一个列表中)

查看值是否存在于多个数组中,如果存在则更改一个数组中的值

打字稿-一个数组中的检查值存在于另一个数组中

PHP在一个数组中查找作为值存在于另一个数组中的键,然后拉回该值

PHP值存在于数组中

检查一个数组列表中的值是否存在于另一个数组列表中

Java8-数组项存在于另一个数组中

检查对象值数组是否存在于另一个数组中,但长度不同

如果一个数组中的值存在于另一个数组中,则返回数组

蜂巢:如何检查一个数组中的值是否存在于另一个数组中?

如果值存在于另一个数组中,如何递归过滤数组

仅显示存在于另一个数组中的数组元素

1 和 0 存在于一个空的 int 数组中

检查一个值是否存在于两个或多个数组中

如何检查一个单词是否存在于 php 的数组中?

从一个数组中删除存在于另一个数组中的项目?

一个数组可以存在于物理内存中的多个位置吗?

如何检查一个项目是否存在于多维度 numpy 数组中?

如何使用SQL检查一个表中存在的json值数组是否存在于另一个表中?

检查一个键是否存在于数组中的所有对象中并设置一个布尔值

检查值是否存在于选择查询中的另一个表中

如何检查一个值是否存在于javascript中的数组中?