传递给php函数的字符串在字符串的第一个空格之后中断

时间:2018-08-16 10:58:57

标签: php

我创建了一个简单的函数,可以输出带有正确html标记的图像,如下所示。我面临的问题是,当我进入其中带有空格的alt文本时,例如“我的猫很棒”,alt中断并显示alt="My"像{{ 1}}。我很难解决这个问题。有什么想法吗?

<img src="blah.jpg" alt="My" cat is great class="home">

4 个答案:

答案 0 :(得分:7)

您实际上并没有输出<img src="blah.jpg" alt="My" cat is great class="home">-这只是浏览器解释它的方式。

您正在输出<img src=blah.jpg alt=My cat is great class=home>

您需要输出一些引号:

$string = '<img src="'.$image_url.'" alt="'.$alt.'" class="'.$class.'">';

答案 1 :(得分:1)

$string = "<img src='".$image_url."' alt='".$alt."' class='".$class."'>';

尝试一下,我认为它将起作用

答案 2 :(得分:0)

一些用户故障。没问题!

确保正确放置<img>标签。

$image_url = 'https://example.com/image';
$alt       = 'My cat is awesome';
$class     = 'image';

所以:

function image_creator($image_url, $alt=false, $class=false) {
    $string = '<img src='.$image_url.' alt='.$alt.' class='.$class.'>';
    return $string;
}

结果:

  

<img src="https://example.com/image" alt="My" cat="" is="" awesome="" class="image">

应为:

function image_creator($image_url, $alt=false, $class=false) {
    $string = '<img src="'.$image_url.'" alt="'.$alt.'" class="'.$class.'">';
    return $string;
}

结果:

  

<img src="https://example.com/image" alt="My cat is awesome" class="image">

您看到差异了吗?仔细查看报价。

文档:

有关使用引号的一些示例:


我个人想使用:

// $image below is being sent to the function
$image = [
    'image_url' => 'https://example.com/image',
    'alt'       => 'My cat is awesome',
    'class'     => 'image',
];

function image_creator($image = [])
{
    if(empty($image))
    {
        return 'No image';
    }

    return '<img src="' . $image['image_url'] . '" alt="' . $image['alt'] . '" class="' . $image['class'] . '">';
}

答案 3 :(得分:0)

//Multiple solution with multiple way
$image_url = 'https://example.com/image';
$alt       = 'My cat is awesome';
$class     = 'image';

$string = '<img src="'.$image_url.'" alt="'.$alt.'" class="'.$class.'">';
//also you can direct echo 
echo '<img src="',$image_url,'" alt="',$alt,'" class="',$class,'">';

//also you can direct echo 
$string=  "<img src='{$image_url}' alt='{$alt}' class='{$class}' >";

//also you can direct echo 
$string =  "<img src='${image_url}' alt='${alt}' class='${class}' >";

echo $string;