怎样用PHP或者js获取网页中某个部分的值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样用PHP或者js获取网页中某个部分的值相关的知识,希望对你有一定的参考价值。
有一个url,比如是https://aaa.com/1024/,网页中部分代码如下
<div class="pure-u-1">
<h1 class="pure-u-1" id="title">葫芦娃.mp4</h1>
<video id="video" class="pure-u-1" controls src="/cdn/hls/937022.m3u8"></video>
<script src="/static/js/hls-0.6.14.min.js"></script>
<script>
if (Hls.isSupported())
var video = document.getElementById('video');
var hls = new Hls();
hls.loadSource("/cdn/hls/937022.m3u8");
hls.attachMedia(video);
hls.on(Hls.Events.MANIFEST_PARSED, function ()
video.play();
);
</script>
</div>
我想要写一个简单的页面,在input中输入https://aaa.com/1024/就可以获取上面网页内容中937022那部分的值并加在一个链接后面,比如https://bbb.com/937022
如果需要跨域,且aaa不允许跨域访问的话,这件事情只能在后端去做,否则可以在前端实现。
然后大概讲一下实现思路,不管是后端还是前端思路都差不多,首先你发起一个http请求去访问input的网站(前端自己发起ajax请求,后端node可以用$http模块发起请求,tomcat等服务器同理),得到响应的html页面内容之后你再做一次文本解析(例如正则匹配的方式)获取你想要的目标字符串,最后加上你自己的链接就行了。追问
可以跨域的,用正则匹配应该可以,不过我没学过这些,只会一些简单的html,方便的话麻烦你帮忙写一下,谢谢你!
参考技术A <html><head><title>test</title></head><body><?php if(isset($_POST['target']) && strlen($_POST['target'])>0) if(strtolower(substr($_POST['target'],4))==='http' || strpos($_POST['target'],"..") === false) $source = file_get_contents($_POST['target']);//file_get_contents方式获取页面内容,所以必须有上面的判断 否则会产生本地文件读取漏洞 $reg = '#/([\d]+).m3u8#i'; if(preg_match($reg,$source,$m)) echo "https://bbb.com/".$m[1]; else echo "输入的链接有误2!"; else echo "输入的链接有误3!"; else echo "输入的链接有误1!";?><br /><form action="#" method="post">输入地址:<input type="text" name="target" style="width:400px;"><br /><input type="submit" value="提交"></form></body></html>如何在当前页面用php 获取js 变量的值
1、首先我们创建一个test的php文件。
2、在里面添加html需要的代码。
3、我们在里面添加js脚本,定义一个a变量100。
4、现在我们在底部添加php中代码,其中定义一个b变量默认为0,准备用它来接收js中的a的值。
5、接着我们在script里面使用writeln输出a,并赋值给php中的变量b,在最后echo输出查看b中的值。
6、在浏览器中打开这个php文件会直接echo出js中变量a的数值为100,到此php获得js中的变量完成。
参考技术A使用ajax是最佳选择。下面来个示例。
html表单:
<html lang="zh_CN">
<head>
<meta charset="utf-8" />
<title>Untitled Document</title>
<script src="
<script>
;jQuery(function($)
$('input#ajax-submit').click(function()
$va = $.trim($('input[name=a]').val());
if(''==$va)
$('#msg').html('<span style="color:red">您没有输入变量A???</span>');
else
$data =
va:$('input[name=a]').val()
;
$.ajax(
type: 'POST',
url: "baidu.php",
data: $data ,
cache:false,
dataType:'json',
context: document.body,
success: function(res)
if('success'==res.r)
$('#msg').html('<span style="color:green">'+res.d+'</span>');
return false;
else
$('#msg').html('<span style="color:red">'+res.d+'</span>');
,
error : function()
$('#msg').html('<span style="color:red">出事儿了!</span>');
return false;
);
);
);
</script>
</head>
<body>
<form id="ajaxform" name="ajaxform" method="post" action="action.php">
<p>
<label for="a">请输入变量A</label><input type="text" name="a" id="a"/>
</p>
<p id="msg"></p>
<p>
<input id ="ajax-submit" type="button" value="提交"/>
</p>
</form>
</body>
</html>
2. 其对应的PHP文件可对js传递过来的参数进行处理(插入数据库、查询数据库、更新数据库等操作),示例:
<?php/**
* @author: suifengtec coolwp.com
* @date: 2015-07-21 10:34:35
* @last Modified by: suifengtec coolwp.com
* @last Modified time: 2015-07-21 10:46:52
*/
function hi_ajax()
if(
isset($_POST['va'])
&&!empty($_POST['va'])
)
$a = maybe_need_to_kill_mysql_injection( $_POST['va'] );
$r = array('r'=>'success','d'=>'我是AJAX返回的数据,您传递的a的变量是:'.$a);
else
$r = array('r'=>'error','d'=>'js没有传递给我参数');
echo json_encode($r);
die();
function maybe_need_to_kill_mysql_injection( $a )
$a = stripslashes($a);
$a = htmlspecialchars($a);
$a = mysql_real_escape_string($a);
return $a;
hi_ajax();
3.关键点儿
3.1 是否有输入,没有输入,就不ajax,而友好的进行提示;
3.2 有输入,ajax,但是在使用ajax进PHP的参数前,要对参数进行安全过滤;
3.3 在PHP中处理ajax传递过来的参数后,要进行返回,最好将操作结果友好的呈现给浏览器用户。
4. 示例的截图
4.1 js判断没有输入变量(变量值为空)
4.2 因为js的前端修改可能会被修改,所以,要在PHP中再加判断:
4.3 传递参数正确,并操作成功的返回
<form action="" method="post">
<input type="text" name="test" value="" />
</form>
通过JS把表单的值赋值,提交表单就可以了啊。
如果不想页面跳转,那肯定就用ajax了,这个三言两语实在说不清,可以找些例子。jquery等JS框架可以轻松实现ajax操作,看手册就可以了。本回答被提问者采纳 参考技术C cookie.唯一php 和js 之间能赋值的... 参考技术D 哎呀 这个有点难啊 上学时会点 上班不做这个了 也不会啦
以上是关于怎样用PHP或者js获取网页中某个部分的值的主要内容,如果未能解决你的问题,请参考以下文章