Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP同时使用str_replace、substr和strop_Php_Str Replace_Substr_Strpos - Fatal编程技术网

PHP同时使用str_replace、substr和strop

PHP同时使用str_replace、substr和strop,php,str-replace,substr,strpos,Php,Str Replace,Substr,Strpos,我试图做的是转换youtube/vimeo上视频的url,返回一个可以嵌入iframe的新url,并自动执行视频嵌入代码 这是一种魅力 $url = "http://vimeo.com/29431603"; $orj_value = array("watch?v=", "http://vimeo.com/"); $new_value = array("embed/", "http://player.vimeo.com/video/"); $url = str_replace($orj_va

我试图做的是转换youtube/vimeo上视频的url,返回一个可以嵌入iframe的新url,并自动执行视频嵌入代码

这是一种魅力

$url  = "http://vimeo.com/29431603";
$orj_value = array("watch?v=", "http://vimeo.com/");
$new_value   = array("embed/", "http://player.vimeo.com/video/");
$url = str_replace($orj_value, $new_value, $url);
echo $url;
你们知道,youtube在url中也有一个丑陋的字符串,以&开头,所以当我包括

$url = substr($url, 0, strpos($url, "&")); 
以前

echo $url;
它去掉了youtube url中不需要的部分。但是,没有&inside的vimeo代码不会返回任何东西。似乎在添加新行后,代码希望在url中看到一个&;否则,回显$url变量将显示空白屏幕

2-对于dailymotion,我需要在第一次 我应该如何编辑下面的行以包含对dailymotion的支持

$url = substr($url, 0, strpos($url, "&")); 
提前感谢所有要回答的人:)

如果strps()找不到您搜索的字符,它将返回false,这可能会混淆substr()

试着这样做:

$url = strpos($url, "&") ? substr($url, 0, strpos($url, "&")) : $url;
关于你的评论:

if(strpos($url, "&")) {
    $url = substr($url, 0, strpos($url, "&"));
} else if(strpos($url, "_")) {
    $url = substr($url, 0, strpos($url, "_"));
}

有更优雅的方法(比如REGEX)但这就行了。请注意,如果要允许此添加,则&或uuu不能是字符串中的第一个字符!==不符合条件。

它工作正常。。非常感谢Hikaru:)编辑这个$url=strpos($url,“&”)是否很容易?substr($url,0,strpos($url,&”):$url;并使其在first之后删除任何内容&或者在first之后,我添加了一个小调整。你不能用这个快捷符号来表示是否有其他的东西。很好用,非常感谢Hikaru。。。我单击了复选框,但由于某些原因,它不允许我在您的邮件上将0变为1:)您需要单击向上箭头;)投票需要15个声望:)这是我每次都能得到的。我相信这是因为我是一个新用户。