我尝试了preg_match并且爆炸了但是并没有获得在网址中获取ID号码的好方法。
URL-S
$a = strtolower('<iframe src="//LearningApps.org/watch?app=1250652" style="border:0px;width:100%;height:500px" webkitallowfullscreen="true" mozallowfullscreen="true"></iframe>');
$b = strtolower('http://LearningApps.org/view1250652');
$c = strtolower('LearningApps.org/view1250652');
$d = strtolower('LearningApps.org/watch?app=1250652');
$e = strtolower('LearningApps.org');
$f = strtolower('http://learningapps.org/339473');
我试过了:
$match = '/[0-9]{7}/';
preg_match($match, $end, $matches);
print_R($matches);
但是id lenght可以改变,所以这对我来说不是很好的解决方案。
答案 0 :(得分:0)
如果整个代码中的iframe样式值相同,这将正常工作:
$c = strtolower('<iframe src="//LearningApps.org/watch?app=1250652" style="border:0px;width:100%;height:500px" webkitallowfullscreen="true" mozallowfullscreen="true"></iframe>');
$numbers = intval(preg_replace('/[^0-9]+/', '', substr($c, 0, -100)), 10);
echo $numbers;
答案 1 :(得分:0)
如果您只想获取数字,可以使用正则表达式。
preg_match("/([0-9]{5,})/", $input_line, $output_array);
或者(但是如果你有一个带有其他数字的字符串,下面的正则表达式将无法正常工作)
preg_replace("/\D/", "", $input_lines);
答案 2 :(得分:0)
作为命名服务learningapps.org的开发人员,我可以为您提供我们自己的PHP函数来解析URL以获取ID:
function getLearningAppID($url){
parse_str( parse_url( $url, PHP_URL_QUERY ), $params );
$ID = null;
$GUID = "";
if(isset($params["v"])) $GUID = $params["v"];
if(isset($params["id"])) $GUID = $params["id"];
if($GUID == ""){
// try AppID
if(preg_match("@learningapps.org/(?:view)?(\d+)@i",$url,$matches)){
$ID = $matches[1];
}else{
if(isset($params["app"])) $ID = $params["app"];
}
}
// now you have either a value in $ID (public app) or $GUID (private app)
...
}
您也可以通过邮件直接与我们联系,我们很高兴听到基于learningapps.org的开发项目: - )