PHP - Getting The Content Of <div> With Reg_match_all
I have html files with this format
Code: [Select] ..... <!--ImageSection--><div class="image"><!--ImageSection--><div align="top"><b>Image Link</b> <br />http://www.something.com <br />http://www.another_url <br /></div><!--ImageEnd--></div><!--ImageEnd--></div> ..... I tried to get the content of a <div> with this code: Code: [Select] preg_match_all('/<div class=\"image\">\<!--ImageSection-->\<div align=\"top\">([^`]*?)<\/div>/', $html, $imglinks); foreach ($imglinks as $imglink){ echo $imagelink; } but it returns empty, where did I wrong? Similar TutorialsHi, I will start off trying to explain what I am trying to make the best I can. What I want to create is a script that gets the gold value from this website: http://www.lbma.org.uk/pages/index.cfm?page_id=46&title=current_statistics and then save it to a variable which I will use to calculate values of different gold karats. Here is the content in bold I need on the website I linked: Quote LONDON GOLD FIXING USD GBP EUR AM 1588.00 1005.127 1251.083 PM 1589.50 1004.741 1249.803 So what help do I need? Well, I don't expect you to figure out the calculating part for me but some help how to get that content pointed out above and save it to a variable is what I would appreciate getting some help with. I don't know much PHP, only some and I have been trying to figure this out for a day now without any success. I suppose php get contents and/or curl should be used here but I don't know how really. I would very much appreciate the help I can get on this. Thank you! This is the Code i am using. This is show error: Fatal error: Call to a member function item() on a non-object in /home/domain/public_html/forum/file/Test.php on line 35 Code: [Select] <?php $xml=("http://www.vn-zoom.com/external.php?type=RSS2&forumids=77"); $xmlDoc = new DOMDocument(); $xmlDoc->load($xml); //get elements from "<channel>" $channel=$xmlDoc->getElementsByTagName('channel')->item(0); $channel_title = $channel->getElementsByTagName('title') ->item(0)->childNodes->item(0)->nodeValue; $channel_link = $channel->getElementsByTagName('link') ->item(0)->childNodes->item(0)->nodeValue; $channel_desc = $channel->getElementsByTagName('description') ->item(0)->childNodes->item(0)->nodeValue; //output elements from "<channel>" echo("<p><a href='" . $channel_link . "'>" . $channel_title . "</a>"); echo("<br />"); echo($channel_desc . "</p>"); //get and output "<item>" elements $x=$xmlDoc->getElementsByTagName('item'); $i=1; // $i = 1 to n (I use For here). { $item_title=$x->item($i)->getElementsByTagName('title') ->item(0)->childNodes->item(0)->nodeValue; $item_link=$x->item($i)->getElementsByTagName('link') ->item(0)->childNodes->item(0)->nodeValue; $item_desc=$x->item($i)->getElementsByTagName('description') ->item(0)->childNodes->item(0)->nodeValue; // If i remove this, it will work....//////////// $item_content=$x->item($i)->getElementsByTagName('content') ->item(0)->childNodes->item(0)->nodeValue; ///////////////////////////////////////////////////// echo ("<p><a href='" . $item_link . "'>" . $item_title . "</a>"); echo ("<br />"); echo ($item_desc . "</p>"); echo ("<br />"); echo ($item_content . "</p>"); } ?> Please help me Fix this Code to Get content of Tag Name <content:encoded> Thanks Hi all, Maybe someone can help me with this, I am looking to copy specific content from one website to another automatically. So when ever one website updates the certain content the other site is automatically updated with it to. I have tried using file_get_contents but this wasnt working. Does anyone have any ideas? Im looking to copy https://annablais.scentsy.us/Home starting at line 270, the end is determined by how many Parties there are. Thanks all Hi i was using the code below to redirect user when a link like. www.site.com/?redirect was clicked, instead how do i add things to the page like "html code goes here" instead of the header? <?php $link ='http://www.whereitredirectstoo.co.uk'; if (isset($_GET['redirect'])) header('Location: ' . $link); ?> thanks Hello I want get content of website and insert it to my website This website have 2000 page and each one have 10 post. I developed some code but I've some problem: Code: [Select] for($i=1;$i<=3;$i++) //$i is website pages { //download main page $maincatst = file_get_contents($catlink.$i); //$catlink select link of category of website //number of post in main page for ($j=1;$j<=10;$j++) { $linkposttmp = TextBetween('before link','after link',$maincatst) ; $link = TextBetween('before link','after link>',$linkposttmp); // download content of each link $main_post_str = file_get_contents($link); My problem is when run this file only download first link of each mainpage. anyone can help me? I've used get_file_contents() before but it seems like it took a long time to load... what is the best or most efficient way to get certain content from a webpage? Like all the posts on a single forum page for example, without loading any images or styles, just the "source" Hi all, I have table, named: tb_event (id, f_date, f_title, f_image, f_status) How to manage, while if 'f_status' from all records NOT EQUAL to 'Published' then show ABCDE Note: on tb_event should be only the latest record (1 record only) that will be shown/published I have code: <? $qry = mysql_query( "SELECT * FROM tb_event WHERE f_status = 'Published'") or die(mysql_error()); while($res = mysql_fetch_array($qry)) { if ($res[f_status] = "Published") { echo ' <img src="images/uploads/'.$res[f_image].'" border="0" /> '; } else { echo ' ABCDE '; } } ?> The result is 'ABCDE' not shown while f_image (all records) is OFF Please help me.. thanks Hi, Say you had, <business_name type="string">L Choong</business_name>, contained inside a variable(content before and after this in the same var), how would you extract the 'L Choong' information as a new var? Thanks How can i get the content of the array? Or is the array empty? Code: [Select] <?php include "../../../config.php"; include "../../../lib.php"; $words = $_POST['wordids']; print_r2($words); for($i = 0; $i < count($words); $i++) { echo "test"; $word = $words[i]; print_r2($word); } ?> Quote Array ( => Array [1] => Array [2] => Array [3] => Array [4] => Array ) test test test test test In case it helps, this is the form that sends the info: Code: [Select] <?php include 'config.php'; include 'lib.php'; $db = dbConnect(); $words = getWords(); dbClose($db); ?> <html> <head> <title>Historer : Words</title> </head> <body> <? if(isset($_GET['removed'])) { ?><div id="message">Removed <? echo $_GET['removed'] ?></div> <? } ?> <div id="container"> <form method="post" action="inc/php/utils/word-exclude.php"> <input type='submit' name='submit' value='Exclude Selected Words'> <table> <tr> <td>word</td> </tr> <? foreach($words as $word) { ?> <tr> <td><input type="checkbox" name="wordids[]" value="<?=$word?>"><?=$word[word]?></td> </tr> <? } ?> </table> </form> </div> </body> </html> Is there a way to create dynamic content without the use of a Content Management System? I simply want to click on a link in my navigation menu and have that display the content in a div section and keep the content in a separate folder on the server. I didnt want to have to use a CMS to accomplish that because every other feature of it will be unused as I just simply want to display the content in a div when I click on the link. I use a simple test server on my Home PC that I use to format the articles in html from documents I have wrote in LibreOffice, so I dont really need all the features and sophistication of full blown CMS. But I also dont want a bunch of different files in my root folder if I can avoid it. I would rather keep the content in a separate folder and just pull it from there and display it on the main page when the link is clicked. Anyway, I dont know if its even possible or if its the best way, so I am open to suggestions as well. Some of the documents are quite long (like several chapters) and some are much shorter (just a few pages). Any help and ideas are much appreciated. Hi all, I would need some advice on the best way to implement an exclusive section in a website. We will be generating say 10,000 unique numbers and sending a unique one to each of our customers. Said customer will enter that number on the site and will be granted access to an exclusive section. How would I validate each number? Do I import those 10,000 numbers in mysql and check if an entered number exists? Or can I simply use a textfile as a database with all those numbers? Are there any solutions for this already made? Thanks in advance! Hi: I have this code that - when added to a page - works fine: Code: [Select] <div class=\"<?php echo (time() <= strtotime('4/17/2011 2:00:00 AM')) ? 'myUpcoming' : 'myPassed'; ?>\"> <span class=\"myGameDate\">April 16:</span> <span class="myGameDateRed">Home</span> vs Baltimore </div> It's a schedule that will display one CSS style before the date, and another CSS style after the date. Works fine on the homepage. I am trying to add it to an include navigation file, so I can add it to all the pages like this: myNav.php Code: [Select] function spSchedule() { $spSchedule = " <div class=\". echo time() ." <= strtotime("4/17/2011 2:00:00 AM") ? \"myUpcoming\" : \"myPassed\"; .\"> <span class=\"myGameDate\">April 16:</span> <span class=\"myGameDateRed\">Home</span> vs Baltimore </div> "; return $spSchedule; } myPage.php: Code: [Select] <?php include('include/myNav.php'); ?> ... <?php echo spSchedule(); ?> What it is doing is writing "myUpcoming" to the page, and that's it. What am I missing on this, please? Hi guys I need to be able to extract (into an array) the content between two tags "<!--" and "-->" in a string ($string). I have $string = "<!--HELLO WORLD-->"; $tags = "/<!--(.*?)--!>/"; preg_match($tags, $string, $matches); return $matches[1]; but it does not seem to work, (no error code, nothing). Any help much appreciated, I want to display 50 results, theirfore I'm using a while loop to do so, the issue is, if $row consists of results lower then 50 (it will display them) and not display 50..so I'm trying to figure out a way so even if $row doesn't cosist of 50 i'll display what it has aswell as continue the $i (and for the rest display NO CONTENT). I've come up with the following on the spot (not sure if it even would work) - but was wanting a better solution. $i = 0; $results = mysql_num_rows($result); while ($row = mysql_fetch_assoc($result)) { $i++; echo $i .' CONTENT '.$row['name'].'<br />'; } if ($result < 50) { for($i <= 50 - $result; $i++) { echo $i .' NO CONTENT<br />'; } } Hi , i am working on a PHP code that would fetch me the" title and the description" from another web page something similar to www.Digg.com .After searching a couple of Open source codes developed by some generous coder I found this piece of code: I have tested this code and it works fine, but the confusion here is it only works from external internet and Iam not able to extract the contents when i use the same piece of code from my office intranet(Our intranet has full access to the internet ) and the best part is when i use the same url for fetching content from Digg.com from my office intranet it works fine. The error I get is file_get_contents time out after 60 seconds OR I get a blank page result without any content But the same piece of code when used outside of my intranet works perfectly fine. Please let me know if you find anything incorrect! Thanks Code: [Select] <?php if(isset($_POST['submitlink'])) { function getMetaTitle($content){ $pattern = "|<[\s]*title[\s]*>([^<]+)<[\s]*/[\s]*title[\s]*>|Ui"; if(preg_match($pattern, $content, $match)) return $match[1]; else return false; } $url = $_POST['submitlink']; $data = array(); // get url title $content = @file_get_contents($url); $data['title'] = getMetaTitle($content); // get url description from meta tag $tags = @get_meta_tags($url); $data['description'] = $tags['description']; $dom = new domDocument; @$dom->loadHTML($content); $dom->preserveWhiteSpace = false; $images = $dom->getElementsByTagName('img'); foreach($images as $img) { $imgurl = $img->getAttribute('src'); $alt = $img->getAttribute('alt'); //$size = getimagesize($imgurl); //echo "Title: $alt<br>"; //echo $imgurl; //echo '<img src="'.$imgurl.'" title="'.$alt.'" width="50px"/>'; } $formdata .= '<table><tr><td>Title:</td><td><a href='; $formdata .= 'gethome.php?url='; $formdata .= $url; $formdata .= '>'; $formdata .= json_encode($data['title']); $formdata .= '</a></td></tr>'; $formdata .= '<tr><td>Description:</td><td> '; $formdata .= json_encode($data['description']); $formdata .= '</td></tr></table>'; } Hi there, I'm new a this, please help me: I've a page in php, that's showing the content of a table, but i want to put a link on it, to save that content in html file to my local hard disk. Can anyone help me please? Thanks a lot. What I'm trying to figure out how to do is when its getting the content for the field it needs to get the ID of the field that way it can get the content of the field. I'm not sure what I'm doing wrong. Code: [Select] <?php require ('php/bios.php'); ?> <script type="text/javascript" src="forms/edit/js/bios.js"></script> <!-- Title --> <div id="title" class="b2"> <h2>Character Management</h2> </div> <!-- Title --> <!-- Inner Content --> <div id="innerContent"> <form action="#" id="bioForm" > <?php while ($row = mysqli_fetch_array($groupsResult, MYSQL_ASSOC)) { echo "<fieldset> <legend>" . $row['groupName'] . "</legend>"; $fieldsResult = mysqli_query ( $dbc, sprintf($fieldsQuery,$row['ID']) ); while ($row2 = mysqli_fetch_array($fieldsResult, MYSQL_ASSOC)) { echo "<div class=field required>"; if ($row2['inputType'] == "text") { echo "<label for=" . $row2['ID'] . ">" . $row2['fullName'] . "</label>"; echo "<input type=text name=" . $row2['ID'] . " id=" . $row2['ID'] . " class=text biofield title=" . $row2['fullName'] . " />"; } elseif ($row2['inputType'] == "textarea") { echo "<label for=" . $row2['ID'] . ">" . $row2['fullName'] . "</label>"; echo "<textarea name=" . $row2['ID'] . " id=" . $row2['ID'] . " class=textarea biofield title=" . $row2['fullName'] . " />"; } else { echo "<label for=" . $row2['ID'] . ">" . $row2['fullName'] . "</label>"; echo "<select name=" . $row2['ID'] . " id=" . $row2['ID'] . " class=dropdown biofield title=" . $row2['fullName'] . " >"; echo "<option value= >None</option>"; if ($styleID == 1 || $styleID == 2 || $styleID == 6) { $charactersQuery = " SELECT characters.ID, characters.characterName FROM characters WHERE characters.styleID = 3 ORDER BY characters.characterName"; } else { $charactersQuery = " SELECT characters.ID, characters.characterName FROM characters WHERE characters.styleID IN (1,2,6) ORDER BY characters.characterName"; } $charactersResult = mysqli_query ( $dbc, $charactersQuery ); // Run The Query while ( $row3 = mysqli_fetch_array ($charactersResult, MYSQLI_ASSOC)) { echo "<option value=" . $row3['ID'] . ">" . $row3['characterName'] . "</option>\r"; } echo "</select>"; } echo "</div>"; } echo "</fieldset>"; } ?> <fieldset> <input type="hidden" name="defaultCharID" id="defaultCharID" value="<?php echo $defaultCharID; ?>" /> <input type="submit" class="submit" id="editBio" title="Edit Bio" value="Edit Bio" /> </fieldset> </form> </div> <!-- /Inner Content --> Code: [Select] <?php session_start(); // Access the existing session // Include the database page require ('../../inc/dbconfig.php'); $defaultCharID = $_SESSION['defaultCharID']; $styleIDQuery = " SELECT characters.styleID FROM characters WHERE characters.ID = '" . $defaultCharID . "'"; $styleIDResult = mysqli_query ( $dbc, $styleIDQuery ); // Run The Query $row = mysqli_fetch_array( $styleIDResult, MYSQL_ASSOC ); $styleID = $row[ 'styleID' ]; $groupsQuery = " SELECT groups.* FROM groups WHERE groups.styleID = '" . $styleID . "' ORDER BY groups.ID"; $groupsResult = mysqli_query ( $dbc, $groupsQuery ); // Run The Query $fieldsQuery = " SELECT fields.* FROM fields WHERE fields.styleID = '". $styleID . "' AND fields.groupID = '%d' AND fields.statusID = 1"; $fieldContent = " SELECT fieldsContent.* FROM fieldsContent WHERE fieldsContent.characterID = '". $defaultCharID . "' AND fieldsContent.fieldID = = '". $fieldID ."'"; ?> Hi, I am building function to convert the db table to an XML file. But I want to retrieve the root node value from the FIRST row in that db table before I build a for loop to traverse that db table. Let's say I have this table NodeInfo: node_Id source target ====== ===== ===== 1 email to 2 to toFirstName pseudocode for what I want: 1) store root (the source field of table NodeInfo 2)for each entry in table NodeInfo, do: build XML END FOR-EACH Any help much appreciated! Hello,
Is there a way that I can tweak the following code so that the root nodes have different names? At the moment the xml file is creating a root node for each booking called booking so when I take the xml into flash it is calling it badly formed xml due to the repitition of <booking></booking> //sql_query $table_id = 'booking'; $query = "SELECT * FROM $table_id WHERE (booking.bookingDate = curDate()) AND roomID = 1 ORDER BY startTime"; $room1 = mysql_query($query); //create a new DOM document $doc = new DOMDocument('1.0'); //create root element $root = $doc->createElement('root'); $root = $doc->appendChild($root); //process one row at at time while($row = mysql_fetch_assoc($room1)){ //add node for each row $occ = $doc->createElement($table_id); $occ = $doc->appendChild($occ); //add achild for each field foreach ($row as $fieldname => $fieldvalue){ $child = $doc->createElement($fieldname); $child = $occ->appendChild($child); $value = $doc->createTextNode($fieldvalue); $value = $child->appendChild($value); } } $xml_string = $doc->saveXML(); echo $xml_string; mysql_free_result($room1); ?> |