I think PHP is useless, bacause iframe is inserted after php is executed, or am I wrong?
So, the only solution I am aware of is to use Javascript/jQuery.
E.g. this would work if the JS would be on the same page as a the iframe:
<html>
<head>
<title></title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script>
<script type="text/javascript">
$(function() {
var myContent = $("#iFrame").contents().find("#myContent")
});
</script>
</head>
<body>
<iframe src="mifile.html" id="iFrame" style="width:200px;height:70px;border:dotted 1px red" frameborder="0">
<div id="myContent">
iframe content blablabla
</div>
</iframe>
</body>
</html>
However I am using Simple HTML DOM library to grab the distant webpage like:
$url = 'http://page-with-some-iframe.com/';
$html = file_get_html( $url );
// Find iframes and put them in an array
$iframes_arr = array();
foreach($html->find('iframe') as $element) {
$iframes_arr[] = $element->outertext;
}
var_dump($iframes_arr);
die();
But obviously, nothing is returned ;(, because iframes are displayed after php is run ;(
So, I was thinking that I would probably need to inject this code:
<script type="text/javascript">
$(function() {
var myContent = $("#iFrame").contents().find("#myContent")
});
</script>
in the header of my grabbed page stored in $html.
Any idea how to get iframe content like that or is this too complicated approach and some easier solution does exist?
You won't be able to access the document of a remote page inside an iframe using javascript because of the same origin policy.
If you know the URL of the page you can use PHP CURL to retrieve it
It is not possible because of security policy. If you are able to get contents of remote iframe - you can steal someone's facebook or banking data with ease. Thats why all web browsers blocks this.