PHP - How To Read A Sitemap Using Php
First of all I have no idea how to do this. But I know it can be done. A little help would be alot for me.
Thank you in advance. So I want to go through a sitemap and visit each of the link on the sitemap and save the URL on to a database. Example: Quote HP 5550N A3 Colour Laser Printer Konica Minolta PagePro 1350W A4 Mono Laser Printer HP 9050dn A3 Mono Laser Printer HP 5550DTN A3 Colour Laser Printer HP 5550HDN A3 Colour Laser Printer HP 5550DN A3 Colour Laser Printer Lets say this was on the sitemap and it just continues with other product like this. I want to write a code where it will go to the first link and saves the product URL on to the database and continues to do the same until the last link. On my example it would be HP 5550DN A3 Colour Laser Printer. Any help??? Any ideas?? I am not asking someone to write the code for me.. Just need help and good direction Similar TutorialsI'm wanting to make a sitemap for my website but should I includes ALL possible url's? For example I have a search page (where you can search a film) where the url syntax is something like "search.php?type=all&film=a+film". Should I make sure that all possible urls are included in my sitemap e.g all the films in my database? Hope that makes sense. Thanks for any help. Hi. I'm trying to create my first XML sitemap that I am going to be submitting to google. The sitemap is going to be PHP but using MOD rewrite to make it look like an XML file. The site map has been created. http://test.powtest.co.uk/sitemap.xml But, I now want to style it. However, when I add the XML style file, I get an error: Parse error: syntax error, unexpected T_STRING in /home/a/d/adele/web/public_html/sitemap.php on line 1 I'm not to sure how to get my PHP file to read in the XML style file. Any help would be much appreciated PHP sitemap (sitemap.xml) Code: [Select] <?xml-stylesheet type="text/xsl" href="sitemap.xsl"?> <?PHP require_once('includes/initialize.php'); $newAbout = Aboutme::find_by_id(1); $aboutDateMod = $newContact->dateMod; $newContact = Contact_details::find_by_id(1); $contactDateMod = $newContact->dateMod; $lastService = Services::find_last_posted(); $servicesDateMod = $lastService->dateMod; $lastBlog = Blog::find_last_posted(); $blogDateMod = $lastBlog->dateMod; // TOP NAVIGATION echo ' <url> <loc>'.SITE_DOMAIN.DS.'</loc> <lastmod>2011-01-17</lastmod> <changefreq>yearly</changefreq> <priority>0.8</priority> </url> <url> <loc>'.SITE_DOMAIN.DS.'services</loc> <lastmod>'.$servicesDateMod.'</lastmod> <changefreq>daily</changefreq> <priority>0.8</priority> </url> <url> <loc>'.SITE_DOMAIN.DS.'testimonials</loc> <lastmod>2011-01-17</lastmod> <changefreq>daily</changefreq> <priority>0.8</priority> </url> <url> <loc>'.SITE_DOMAIN.DS.'about_adele_fifer</loc> <lastmod>'.$aboutDateMod.'</lastmod> <changefreq>yearly</changefreq> <priority>0.8</priority> </url> <url> <loc>'.SITE_DOMAIN.DS.'contact</loc> <lastmod>'.$contactDateMod.'</lastmod> <changefreq>never</changefreq> <priority>0.8</priority> </url> <url> <loc>'.SITE_DOMAIN.DS.'tips</loc> <lastmod>'.$blogDateMod.'</lastmod> <changefreq>daily</changefreq> <priority>0.8</priority> </url>'; // SERVICE CAT $check = Services::count_CID(); if($check >= 1){ $serviceCat = Services_categories::find_all_order_by_exclude_nonFolder('category', 'ASC'); foreach($serviceCat as $serviceCats){ $ID = $serviceCats->id; $cat = ucwords($serviceCats->category); $servicesCatDateMod = $serviceCats->dateMod; if($checkCat = Services::if_CID_exists($ID)){ echo ' <url> <loc>'.make_cat_url('services_list', $ID, $cat).'</loc> <lastmod>'.$servicesCatDateMod.'</lastmod> <changefreq>daily</changefreq> <priority>0.8</priority> </url>'; } } } // SERVICE LIST $serviceCat = Services::find_all_order_by('title', 'ASC'); foreach($serviceCat as $serviceCats){ $ID = $serviceCats->id; $title = ucwords($serviceCats->title); $servicesDateMod = $serviceCats->dateMod; echo ' <url> <loc>'.make_url('services', $ID, $title).'</loc> <lastmod>'.$servicesDateMod.'</lastmod> <changefreq>yearly</changefreq> <priority>0.8</priority> </url>'; } // BLOG CAT $blogCat = Blog_categories::find_all_order_by('category', 'ASC'); foreach($blogCat as $blogCats){ $ID = $blogCats->id; $cat = ucwords($blogCats->category); $desc = $blogCats->smallDesc; $img = $blogCats->img; echo ' <url> <loc>'.make_cat_url('tips_list', $ID, $cat).'</loc> <lastmod>'.$servicesCatDateMod.'</lastmod> <changefreq>daily</changefreq> <priority>0.8</priority> </url>'; } // BLOG $blogCat = Blog::find_all_order_by('position', 'ASC'); foreach($blogCat as $blogCats){ $ID = $blogCats->id; $title = ucwords($blogCats->title); echo ' <url> <loc>'.make_url('tips', $ID, $title).'</loc> <lastmod>'.$servicesCatDateMod.'</lastmod> <changefreq>yearly</changefreq> <priority>0.8</priority> </url>'; } ?> XML Stylesheet (sitemap.xsl) Code: [Select] <?xml version="1.0" encoding="UTF-8"?><!-- DWXMLSource="http://test.powtest.co.uk/sitemap.xml" --> <!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp " "> <!ENTITY copy "©"> <!ENTITY reg "®"> <!ENTITY trade "™"> <!ENTITY mdash "—"> <!ENTITY ldquo "“"> <!ENTITY rdquo "”"> <!ENTITY pound "£"> <!ENTITY yen "¥"> <!ENTITY euro "€"> ]> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" encoding="UTF-8" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/> <xsl:template match="/"> <html> − <head> − <title> Adele Fifer </title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> − <style type="text/css"> body { font-family: Arial, sans-serif; font-size:13px; } #intro { background-color:#CFEBF7; border:1px #2580B2 solid; padding:5px 13px 5px 13px; margin:10px; margin-top:40px; } #intro p { line-height: 16.8667px; } td { font-size:11px; } th { text-align:left; padding-right:30px; font-size:11px; } tr.high { background-color:whitesmoke; } #footer { padding:2px; margin:10px; font-size:8pt; color:gray; } #footer a { color:gray; } a { color:black; } #content { padding: 30px; } img, img a { border:none; } </style> </head> − <body> <h1>Adele Fifer Sitemap</h1> − <div id="content"> − <table cellpadding="5"> − <tr style="border-bottom: 1px solid black;"> <th>URL</th> <th>Priority</th> <th>Change Frequency</th> <th>LastChange</th> </tr> <xsl:variable name="lower" select="'abcdefghijklmnopqrstuvwxyz'"/> <xsl:variable name="upper" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'"/> − <xsl:for-each select="sitemap:urlset/sitemap:url"> − <tr> − <xsl:if test="position() mod 2 != 1"> <xsl:attribute name="class">high</xsl:attribute> </xsl:if> − <td> − <xsl:variable name="itemURL"> <xsl:value-of select="sitemap:loc"/> </xsl:variable> − <a href="{$itemURL}"> <xsl:value-of select="sitemap:loc"/> </a> </td> − <td> <xsl:value-of select="concat(sitemap:priority*100,'%')"/> </td> − <td> <xsl:value-of select="concat(translate(substring(sitemap:changefreq, 1, 1),concat($lower, $upper),concat($upper, $lower)),substring(sitemap:changefreq, 2))"/> </td> − <td> <xsl:value-of select="concat(substring(sitemap:lastmod,0,11),concat(' ', substring(sitemap:lastmod,12,5)))"/> </td> </tr> </xsl:for-each> </table> </div> − <div id="footer"> <a href="http://test.powtest.co.uk/about_adele_fifer">About Adele Fifer</a> </div> </body> </html> </xsl:template> </xsl:stylesheet> Hello,
I try to get website speed of some website, but i can read only ''domain.com'' i can't read website files like css , js ... why ? i use proxies for this job.
here is the php code:
$options = array( 'useragent' => "Firefox (+http://www.firefox.org)", // who am i 'connecttimeout' => 120, // timeout on connect 'timeout' => 120, // timeout on response 'redirect' => 10, // stop after 10 redirects 'referer' => "http://www.google.com", 'proxyhost' =>'85.25.8.14:80' ); $response = http_get("http://solve-ict.com/wp-content/themes/ict%20theme/js/jquery-1.7.1.min.js", $options , $info);but it works fine with http://domain.com/ , but with files css or js it gives 404, using some free proxy servers available ? Thanks. I'm wanting to make a sitemap for my website but as it's quite big there are a lot of url's I need to include. I was wondering if anyone know's of a way this can be done using PHP. e.g. using PHP to generate a list of URL's. I had a think myself but wasn't sure how to do it. Thanks for any help. Trying to get this done: Page_1 has many external links, when certain links are clicked i do not want user to go directly to page, but rather go to a special add page_2 where user must click a second time on the link to finally get there. The add page_2 must show on screen the name of the initial link from page_1, it must change accordingly with the link it came from page_1,once on page_2 the hyperlink redirects outside the site. So far i am thinking give an id to the div or "<a href..." on page_1 then somehow have page_2 detect that id and fill in the variable for the final external link. Other wise is there a way to detect a url from incoming? I guess a similar example is how some domain name sellers landing page will indicate the name of the site. Such as "Thisdomain.com" is for sale. same landing page but the name changes according to the domain that was typed. Hello, I have found the following code which creates a sitemap from the home directory of files. Please could you point me in the right direction for changing this so that it looks up from my sql database and for each name within the database creates an entry in the sitemap (e.g. www.mysite.com/[NAME]). Thanks for your help, Stu Code: [Select] <?php /******************************************************************************\ * Author : Binny V Abraham * * Website: http://www.bin-co.com/ * * E-Mail : binnyva at gmail * * Get more PHP scripts from http://www.bin-co.com/php/ * ****************************************************************************** * Name : PHP Google Search Sitemap Generator * * Version : 1.00.A * * Date : Friday 17 November 2006 * * Page : http://www.bin-co.com/php/programs/sitemap_generator/ * * * * You can use this script to create the sitemap for your site automatically. * * The script will recursively visit all files on your site and create a * * sitemap XML file in the format needed by Google. * * * * Get more PHP scripts from http://www.bin-co.com/php/ * \******************************************************************************/ // Please edit these values before running your script. //////////////////////////////////// Options //////////////////////////////////// $url = "http://www.WEBSITE_NAME.com/"; //The Url of the site - the last '/' is needed $root_dir = ''; //Where the root of the site is with relation to this file. $file_mask = '*.php'; //Or *.html or whatever - Any pattern that can be used in the glob() php function can be used here. //The file to which the result is written to - must be writable. The file name is relative from root. $sitemap_file = 'sitemap.xml'; // Stuff to be ignored... //Ignore the file/folder if these words appear in the name $always_ignore = array( 'local_common.php','images' ); //These files will not be linked in the sitemap. $ignore_files = array( '404.php','error.php','configuration.php','include.inc' ); //The script will not enter these folders $ignore_folders = array( 'Waste','php_uploads','images','includes','lib','js','css','styles','system','stats','CVS','.svn' ); //The default priority for all pages - the priority of all pages will increase/decrease with respect to this. $starting_priority = ($_REQUEST['starting_priority']) ? $_REQUEST['starting_priority'] : 70; /////////////////////////// Stop editing now - Configurations are over //////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////// function generateSiteMap() { global $url, $file_mask, $root_dir, $sitemap_file, $starting_priority; global $always_ignore, $ignore_files, $ignore_folders; global $total_file_count,$average, $lowest_priority_page, $lowest_priority; /////////////////////////////////////// Code //////////////////////////////////// chdir($root_dir); $all_pages = getFiles(''); $xml_string = '<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.google.com/schemas/sitemap/0.84" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84 http://www.google.com/schemas/sitemap/0.84/sitemap.xsd"> <?php # '; $modified_priority = array(); for ($i=30;$i>0;$i--) array_push($modified_priority,$i); $lowest_priority = 100; $lowest_priority_page = ""; //Process the files foreach ($all_pages as $link) { //Find the modified time. $handle = fopen($link,'r'); $info = fstat($handle); fclose($handle); $modified_at = date('Y-m-d\Th:i:s\Z',$info['mtime']); $modified_before = ceil((time() - $info['mtime']) / (60 * 60 * 24)); $priority = $starting_priority; //Starting priority //If the file was modified recently, increase the importance if($modified_before < 30) { $priority += $modified_priority[$modified_before]; } if(preg_match('/index\.\w{3,4}$/',$link)) { $link = preg_replace('/index\.\w{3,4}$/',"",$link); $priority += 20; } //These priority detectors should be different for different sites :TODO: if(strpos($link,'example')) $priority -= 30; //If the page is an example page elseif(strpos($link,'demo')) $priority -= 30; if(strpos($link,'tuorial')) $priority += 10; if(strpos($link,'script')) $priority += 5; if(strpos($link,'other') !== false) $priority -= 20; //Priority based on depth $depth = substr_count($link,'/'); if($depth < 2) $priority += 10; // Yes, I know this is flawed. if($depth > 2) $priority += $depth * 5; // But the results are better. if($priority > 100) $priority = 100; $loc = $url . $link; if(substr($loc,-1,1) == '/') $loc = substr($loc,0,-1);//Remove the last '/' char. $total_priority += $priority; if($lowest_priority > $priority) { $lowest_priority = $priority;//Find the file with the lowest priority. $lowest_priority_page = $loc; } $priority = $priority / 100; //The priority is given in decimals $xml_string .= " <url> <loc>$loc</loc> <lastmod>$modified_at</lastmod> <priority>$priority</priority> </url>\n"; } $xml_string .= "</urlset>"; if(!$hndl = fopen($sitemap_file,'w')) { //header("Content-type:text/plain"); print "Can't open sitemap file - '$sitemap_file'.\nDumping result to screen...\n<br /><br /><br />\n\n\n"; print '<textarea rows="25" cols="70" style="width:100%">'.$xml_string.'</textarea>'; } else { print '<p>Sitemap was written to <a href="' . $url.$sitemap_file .'">'. $url.$sitemap_file .'></a></p>'; fputs($hndl,$xml_string); fclose($hndl); } $total_file_count = count($all_pages); $average = round(($total_priority/$total_file_count),2); } ///////////////////////////////////////// Functions ///////////////////////////////// // File finding function. function getFiles($cd) { $links = array(); $directory = ($cd) ? $cd . '/' : '';//Add the slash only if we are in a valid folder $files = glob($directory . $GLOBALS['file_mask']); foreach($files as $link) { //Use this only if it is NOT on our ignore lists if(in_array($link,$GLOBALS['ignore_files'])) continue; if(in_array(basename($link),$GLOBALS['always_ignore'])) continue; array_push($links, $link); } //asort($links);//Sort 'em - to get the index at top. //Get All folders. $folders = glob($directory . '*',GLOB_ONLYDIR);//GLOB_ONLYDIR not avalilabe on windows. foreach($folders as $dir) { //Use this only if it is NOT on our ignore lists $name = basename($dir); if(in_array($name,$GLOBALS['always_ignore'])) continue; if(in_array($dir,$GLOBALS['ignore_folders'])) continue; $more_pages = getFiles($dir); // :RECURSION: if(count($more_pages)) $links = array_merge($links,$more_pages);//We need all thing in 1 single dimentional array. } return $links; } //////////////////////////////// Display ///////////////////////////// ?> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.1 Transitional//EN"> <html> <head> <title>Sitemap Generation Using PHP</title> <style type="text/css"> a {color:blue;text-decoration:none;} a:hover {color:red;} </style> </head> <body> <h1>PHP Google Search Sitemap Generator Script</h1> <?php if($_POST['action'] == 'Create Sitemap') { generateSiteMap(); ?> <h2>Sitemap Created...</h2> <h2>Statastics</h2> <p><strong><?php echo $total_file_count; ?></strong> files were found and indexed.<br /> Lowest priority of <strong><?php echo $lowest_priority; ?></strong> was given to <a href='<?php echo $lowest_priority_page; ?>'><?php echo $lowest_priority_page; ?></a></p> Average Priority : <strong><?php echo $average; ?></strong><br /> <h2>Redo</h2> <?php } else { ?> <p>You can use this script to create the sitemap for your site automatically. The script will recursively visit all files on your site and create a sitemap XML file in the format needed by Google. </p> <p>You can customize the result by changing the starting priorities.</p> <h2>Set Starting Priority</h2> <?php } ?> <form action="create_sitemap.php" method="post"> Starting Priority : <input type="text" name="starting_priority" size="3" value="<?php echo $starting_priority; ?>" /> <input type="submit" name="action" value="Create Sitemap" /> </form> </body> </html> Hi, I have found a nice little script to write to the xml file for google, but it appears not to be updating the file. Could someone please let me know what might be wrong as this is the first time I've tried to do this. Code: [Select] $dom = new DomDocument('1.0', 'utf-8'); $dom->load('../sitemap.xml'); // if it's a string, $dom->load($xmlFile) if is a file // create the new node element $node = $dom->createElement('url'); // build node $node->appendChild($dom->createElement('loc', $title)); $node->appendChild($dom->createElement('lastmode', date(Y-m-d))); $node->appendChild($dom->createElement('changefreq', 'monthly')); $node->appendChild($dom->createElement('priority', '2')); // append the child node to the root $dom->documentElement->appendChild($node); // get the document as an XML string $xmlStr = $dom->save(); I was wondering if it was something to do with the [urlset] tag within the xml file I'm using? The xml file is just a standard google sitemap.xml Any help on this would be great Cheers Rob I have a simple php script that updates my sitemap automatically. However, when you click the link to the sitemap at www.bomstudies.com/sitemap-xml.php - the last mod date is showing 1969. The php script works for files that are not in sub folders. such as /talks or /commentary. I just need to know what snippet of code i should add, change, or delete to the sitemap php side of it to show the correct last mod date for my xml sitemap. I greatly appreciate your help.
Thanks -
Here is some of my code:
The Config Code: posted as config.php
<?php I wish to create a sitemap for a shopping cart and so far it seem this needs to be in XML format? is this true ? If so are there any templates that I can use to base my sitemap on. From my experience, using Google's sitemap generator to generate a sitemap is not that good. It creates page that you do not want to show up. I am wondering what the best method is for creating a sitemap of a website so that only certain pages of the website show up on Google?
For the last 2 months I have purchased software and utilized free software to attempt to create a sitemap fro my websites
www.negroartist.com
www.africanafrican.com
all of them fail and do not look at all links. i.e. look at a photo album with all the htm in the photo album.
Most of the windows based software do not work and often crash. I want it to index ALL of my site (except images, pdf etc)
Is there any php code, program etc. out there to help me through my dilemna that has instructions for configurabillity? I can also try anything that uses apache etc.
i am at my whits end with this. please help.
has anyone used bing sitemap plugin? how do you install this baby?
my links will total in the hundreds of thousands.
thanks :-)
I got a question im using izabi for me im one who loves the software. But there some quirks that they forgot to add when making the mail system. I was wondering how it would be possible to code in a peice of php where it says read after someone read the email. If you need a copy of the mail mail script let me know. So a project I have simply to learn how it is done is to make an auto updating sitemap with a auto submitter. I have been doing a little research on sitemaps but haven't found much in the way of a tutorial or white paper or similar, anyway I was wondering if I am on the right track or not. What I was thinking for the auto-updating sitemap is since site maps are XML, when an article is published using my custom CMS/Blogging system, I make it rewrite the sitemap appending the new URL that will be generated. Then for the auto-submit, I can either make it a cron job or just manual press, but it would go though a for list of URLs, replacing the end part with my site map url. I think that is how it would be done. If you have a better idea, or can point out an article so I can understand a lot more with sitemaps, I will appreciate it, I am trying to learn as much as possible, I have gone to the offical website (sitemaps.org) but it doesn't have what I am looking for. Thanks, James i have this code Code: [Select] <?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0"> <channel> <item> <title> tttt1</title> <link>lll1</link> <description> dddd1 </description> </item> <item> <title> tttt2</title> <link>lll2</link> <description> dddd2 </description> </item> <item> <title> tttt3</title> <link>lll3</link> <description> dddd3 </description> </item> and i want go get to array all the details tttt1 lll1 dddd1 tttt2 lll2 dddd2 tttt3 lll3 dddd3 how can i do that simple? I SEE THIS http://il2.php.net/xml_parse but 1)i dont understand this how can i do what i want 2) it is too long and class code i need short and simple please help Hi everyone, I need some help here. I don't know PHP coding and how to write custom php code for reading a XML in PHP. I have a application which updates the server status in real time and send out the data in XML format. I want to create a PHP page so that can show the data in XML to frontend user... I am pasting the XML code that need to be converted in PHP. Any kind of help will be appreciated. If anybody can give me the code and displaying the data in table format that will be awesome.... Code: [Select] <?xml version="1.0" encoding="UTF-8"?> -<simplehelp_metrics builddate="20120419-123521" version="3.12"> -<technician_metrics> <metric value="2" name="Technicians Logged In" id="tech_logged_in"/> <metric value="0" name="Technicians In Session" id="tech_in_session"/> <metric value="0" name="Technicians In Remote Session" id="tech_in_remote_session"/> </technician_metrics> -<customer_metrics> <metric value="0" name="Customers Logged In" id="cust_logged_in"/> <metric value="0" name="Customers In Session" id="cust_in_session"/> <metric value="0" name="Customers Waiting" id="cust_waiting"/> </customer_metrics> -<server_metrics> <metric value="1" name="Server Maximum Sessions" id="server_max_sessions"/> <metric value="23" name="Server Total Number of Sessions" id="server_total_sessions"/> <metric value="23" name="Server Total Number of Support Sessions" id="server_total_support_sessions"/> <metric value="0" name="Server Total Number of Access Sessions" id="server_total_access_sessions"/> <metric value="21217" name="Average Queue Time" id="server_average_queue_time"/> <metric value="17052" name="Last Queue Time" id="server_last_queue_time"/> <metric value="1830883" name="Average Session Duration" id="server_average_session_time"/> <metric value="5932145" name="Last Session Duration" id="server_last_session_time"/> </server_metrics> -<technicians> <technician name="tlc10271" login="tlc10271"/> <technician name="tlc10072" login="tlc10072"/> </technicians> </simplehelp_metrics> this is what i have so far: Code: [Select] $var=$_POST["fname"]; $xmlDoc = new DOMDocument(); $xmlDoc->loadXML($var); I would like to use something similar to this included in it before sql insert: Code: [Select] for($c = 0; $c<$node->length; $c++) { 1 root, 4 parents and varying childs I believe? Code: [Select] <node> <building>Number 65</building> <workers><label>executive</label><names>john</names><label>cook</label><names>terry</names><label>waitress</label><names>jill</names><label>buser</label><names>4564646</names><label>Main</label><number>45564646</number><label>home fax</label><number>45964646</number></workers> <food><label>breakfast</label><meal>eggs</meal><label>lunch</label><meal>turkey</meal><label>dinner</label><meal>steak</meal></food> <addresses><label>Home</label><Country>usa</Country><Street>123 mulberry ln </Street><ZIP>57888</ZIP><City>teledo</City><State>Ohio</State><label>location</label><Street>turnpike east 23</Street><City>danbury</City><State>Connecticut</State><Country>USA</Country></addresses> <building>Number 66</building> etc... </node> Thank you! hi, i am requesting bookrenter.com with curl and getting back a response in something like xml format The response is Code: [Select] <response> <book> <info> <isbn13>9780324786453</isbn13> <isbn10>032478645X</isbn10> </info> <prices> <rental_price days="45">$17.43</rental_price> <rental_price days="90">$24.35</rental_price> <rental_price days="60">$20.87</rental_price> <rental_price days="30">$15.87</rental_price> <rental_price days="125">$28.99</rental_price> </prices> <lowest_shipping_price>$0.00</lowest_shipping_price> <availability>In Stock</availability> <url>http://www.shareasale.com/r.cfm?u=&b=96706&m=14293&urllink=www.bookrenter.com%2Fdiscovering-computers-2010-living-in-a-digital-world-complete-shelly-cashman-series-032478645X-9780324786453</url> </book> </response> Now i want to process the response so that it will show the values in user readable form like 45 day's rent is $17.43 90 day's rent is $24.35 60 day's rent is $20.87 30 day's rent is $15.87 125 day's rent is $28.99 Shipping price is $0.00 please help Thanks Good morning guys. I am pulling data from vehicle tracking site via soap curl. but the data format that I am getting it in is unusable, maybee i am doing something wrong. please have a look. here is the code. <?php //Data, connection, auth $dataFromTheForm = $_POST['fieldName']; // request data from the form $soapUrl = "https://fleet11.******.co.za/api/"; // asmx URL of WSDL $soapUser = "********"; // username $soapPassword = "********"; // password // xml post structure $xml_post_string = '<?xml version="1.0" encoding="utf-8"?> <soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:api="fleet11.cartrack.co.za/api/"> <soapenv:Header/> <soapenv:Body> <api:endpoint.get_vehicle_last_positions soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <username xsi:type="xsd:string">?</username> </api:endpoint.get_vehicle_last_positions> </soapenv:Body> </soapenv:Envelope>'; $headers = array( "Content-type: application/x-www-form-urlencoded", "Accept: text/xml", "Cache-Control: no-cache", "Pragma: no-cache", "SOAPAction: fleet11.******.co.za/api/#get_vehicle_last_positions", "Content-length: ".strlen($xml_post_string), ); $url = $soapUrl; // var_dump($url); $ch = curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERPWD, $soapUser.":".$soapPassword); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_post_string); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); `curl_setopt($ch, CURLOPT_HEADER, true);` // converting $response = curl_exec($ch); curl_close($ch); //paul add //echo "<pre>"; print_r($response); What is returning is single line entries QuoteGMT Server: [32] => Apache X-SOAP-Server: [33] => NuSOAP/0.9.5 [34] => (1.123) Content-Length: [35] => 15407 Vary: [36] => Accept-Encoding,User-Agent Access-Control-Allow-Origin: [37] => * Access-Control-Allow-Methods: [38] => POST, [39] => GET, [40] => OPTIONS Access-Control-Allow-Headers: [41] => Origin, [42] => X-Requested-With, [43] => Content-Type, [44] => Accept Access-Control-Allow-Credentials: [45] => true Content-Type: [46] => text/xml; [47] => charset=UTF-8 version="1.0" [49] => encoding="UTF-8"?> SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" [51] => xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" [52] => xmlns:xsd="http://www.w3.org/2001/XMLSchema" [53] => xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" [54] => xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" [55] => xmlns:tns="fleet11.cartrack.co.za/api/"> xsi:type="SOAP-ENC:Array" [57] => SOAP-ENC:arrayType="tns:get_vehicle_last_positionsResultType0Row[20]"> xsi:type="tns:get_vehicle_last_positionsResultType0Row"> xsi:type="xsd:string">115687333 xsi:type="xsd:string">HG07DPGP xsi:type="xsd:string">2020-07-01 [62] => 08:03:32+02 xsi:type="xsd:string"> xsi:type="xsd:double">-26.118315 xsi:type="xsd:double">28.162389 xsi:type="xsd:string">0 xsi:type="xsd:string">Greenstone [68] => Hill, [69] => Kempton [70] => Park, [71] => Gauteng, [72] => South [73] => Africa xsi:type="xsd:string">25065631 xsi:type="xsd:string">ADNUSN1D5U0135477 xsi:type="tns:get_vehicle_last_positionsResultType0Row"> xsi:type="xsd:string">115687485 xsi:type="xsd:string">HG07DKGP xsi:type="xsd:string">2020-07-01 [80] => 08:02:56+02 xsi:type="xsd:string"> xsi:type="xsd:double">-26.130168 xsi:type="xsd:double">28.159369 xsi:type="xsd:string">0 xsi:type="xsd:string">Diaz [86] => Avenue, [87] => Eastleigh, [88] => Edenvale, [89] => Gauteng, [90] => South [91] => Africa xsi:type="xsd:string">53844088 xsi:type="xsd:string">ADNUSN2D5U0135485 xsi:type="tns:get_vehicle_last_positionsResultType0Row"> xsi:type="xsd:string">116851782 xsi:type="xsd:string">HH65MRGP xsi:type="xsd:string">2020-07-01 [98] => 06:46:10+02 xsi:type="xsd:string"> xsi:type="xsd:double">-26.19221 xsi:type="xsd:double">28.226617 xsi:type="xsd:string">0 xsi:type="xsd:string">Pretoria [104] => Road, [105] => Witfield, [106] => Boksburg, [107] => Gauteng, [108] => South [109] => Africa xsi:type="xsd:string">35613090 xsi:type="xsd:string">ADNUSN1D5U0139460 xsi:type="tns:get_vehicle_last_positionsResultType0Row"> xsi:type="xsd:string">124523243 xsi:type="xsd:string">HM02SRGP xsi:type="xsd:string">2020-07-01 [116] => 07:35:45+02 xsi:type="xsd:string"> xsi:type="xsd:double">-25.75936 xsi:type="xsd:double">28.377471 xsi:type="xsd:string">0 xsi:type="xsd:string">Close [122] => to [123] => Mamelodi, [124] => Gauteng, [125] => South [126] => Africa xsi:type="xsd:string">72339064 xsi:type="xsd:string">ABNALGD22ZR114138 xsi:type="tns:get_vehicle_last_positionsResultType0Row"> xsi:type="xsd:string">124523364 xsi:type="xsd:string">HL98BLGP xsi:type="xsd:string">2020-07-01 [133] => 08:04:54+02 xsi:type="xsd:string"> xsi:type="xsd:double">-26.111563 xsi:type="xsd:double">28.130599 xsi:type="xsd:string">98 xsi:type="xsd:string">Eastern [139] => Bypass, [140] => Lombardy [141] => East, [142] => Johannesburg, [143] => Gauteng, [144] => South [145] => Africa xsi:type="xsd:string">41388033 xsi:type="xsd:string">ADNUSN1D5U1046692 xsi:type="tns:get_vehicle_last_positionsResultType0Row"> xsi:type="xsd:string">131644752 xsi:type="xsd:string">DZ04YCGP xsi:type="xsd:string">2020-07-01 [152] => 07:12:08+02 xsi:type="xsd:string"> xsi:type="xsd:double">-26.058652 xsi:type="xsd:double">27.9626 xsi:type="xsd:string">0 xsi:type="xsd:string">Sharonlea [158] => & [159] => Exts, [160] => Randburg, [161] => Gauteng, [162] => South [163] => Africa xsi:type="xsd:string">99787541 xsi:type="xsd:string">ADNUSN1DSU018112 xsi:type="tns:get_vehicle_last_positionsResultType0Row"> xsi:type="xsd:string">131928943 xsi:type="xsd:string">CM63CKGP xsi:type="xsd:string">2020-07-01 [170] => 08:04:23+02 xsi:type="xsd:string"> xsi:type="xsd:double">-26.091137 xsi:type="xsd:double">28.136977 xsi:type="xsd:string">5 xsi:type="xsd:string">Reid [176] => Avenue, [177] => Linbro [178] => Park [179] => AH, [180] => Sandton, [181] => Gauteng, [182] => South [183] => Africa xsi:type="xsd:string">127659623 xsi:type="xsd:string">ADNUSN1D5U0062513 xsi:type="tns:get_vehicle_last_positionsResultType0Row"> xsi:type="xsd:string">131929103 xsi:type="xsd:string">CW94GBGP xsi:type="xsd:string">2020-07-01 [190] => 07:45:08+02 xsi:type="xsd:string"> xsi:type="xsd:double">-26.121185 xsi:type="xsd:double">28.037383 xsi:type="xsd:string">0 xsi:type="xsd:string">Zandfontein [196] => 42 [197] => IR [198] => Ext [199] => 42, [200] => Sandton, [201] => Gauteng, [202] => South [203] => Africa xsi:type="xsd:string">90508868 xsi:type="xsd:string">ADNUSN1D5U0072740 xsi:type="tns:get_vehicle_last_positionsResultType0Row"> xsi:type="xsd:string">131929189 xsi:type="xsd:string">DJ17CSGP xsi:type="xsd:string">2020-07-01 [210] => 08:02:23+02 xsi:type="xsd:string"> xsi:type="xsd:double">-26.037962 xsi:type="xsd:double">28.115413 xsi:type="xsd:string">0 xsi:type="xsd:string">Auston [216] => View, [217] => Midrand, [218] => Gauteng, [219] => South [220] => Africa xsi:type="xsd:string">133138296 xsi:type="xsd:string">ADNUSN1D5U0083443 xsi:type="tns:get_vehicle_last_positionsResultType0Row"> xsi:type="xsd:string">133862270 xsi:type="xsd:string">HR66YXGP xsi:type="xsd:string">2020-07-01 [227] => 08:03:59+02 xsi:type="xsd:string"> xsi:type="xsd:double">-29.525639 xsi:type="xsd:double">31.204625 xsi:type="xsd:string">0 xsi:type="xsd:string">Deepdene, [233] => Ballito, [234] => KwaZulu-Natal, [235] => South [236] => Africa xsi:type="xsd:string">65364399 xsi:type="xsd:string">ADNALGD22ZR115154 xsi:type="tns:get_vehicle_last_positionsResultType0Row"> xsi:type="xsd:string">146454559 xsi:type="xsd:string">HV78BLGP xsi:type="xsd:string">2020-07-01 [243] => 07:34:51+02 xsi:type="xsd:string"> xsi:type="xsd:double">-26.085404 xsi:type="xsd:double">28.133489 xsi:type="xsd:string">0 xsi:type="xsd:string">Clulee [249] => Road, [250] => Linbro [251] => Park [252] => AH, [253] => Sandton, [254] => Gauteng, [255] => South [256] => Africa xsi:type="xsd:string">30852771 xsi:type="xsd:string">ADNUSN1DSU0156147 xsi:type="tns:get_vehicle_last_positionsResultType0Row"> xsi:type="xsd:string">152773681 xsi:type="xsd:string">HX90JJGP xsi:type="xsd:string">2020-06-30 [263] => 17:52:53+02 xsi:type="xsd:string"> xsi:type="xsd:double">-26.130205 xsi:type="xsd:double">28.15951 xsi:type="xsd:string">0 xsi:type="xsd:string">Diaz [269] => Avenue, [270] => Eastleigh, [271] => Edenvale, [272] => Gauteng, [273] => South [274] => Africa xsi:type="xsd:string">14419677 xsi:type="xsd:string">ADNUSN1D5U0161101 xsi:type="tns:get_vehicle_last_positionsResultType0Row"> xsi:type="xsd:string">159833291 xsi:type="xsd:string">JB31BYGP xsi:type="xsd:string">2020-07-01 [281] => 07:17:59+02 xsi:type="xsd:string"> xsi:type="xsd:double">-26.181345 xsi:type="xsd:double">28.216789 xsi:type="xsd:string">1 xsi:type="xsd:string">Jet [287] => Park [288] => Road, [289] => Witfield, [290] => Boksburg, [291] => Gauteng, [292] => South [293] => Africa xsi:type="xsd:string">30900017 xsi:type="xsd:string">ADNUSN1D5U0164185 xsi:type="tns:get_vehicle_last_positionsResultType0Row"> xsi:type="xsd:string">167023369 xsi:type="xsd:string">HZ14SDGP xsi:type="xsd:string">2020-07-01 [300] => 08:01:53+02 xsi:type="xsd:string"> xsi:type="xsd:double">-26.13017 xsi:type="xsd:double">28.159555 xsi:type="xsd:string">0 xsi:type="xsd:string">Lucas [306] => Road, [307] => Eastleigh, [308] => Edenvale, [309] => Gauteng, [310] => South [311] => Africa xsi:type="xsd:string">17826940 xsi:type="xsd:string">KMFZB7LKU621919 xsi:type="tns:get_vehicle_last_positionsResultType0Row"> xsi:type="xsd:string">167435050 xsi:type="xsd:string">JH04HZGP xsi:type="xsd:string">2020-07-01 [318] => 07:32:35+02 xsi:type="xsd:string"> xsi:type="xsd:double">-26.058647 xsi:type="xsd:double">27.961838 xsi:type="xsd:string">0 xsi:type="xsd:string">Sharonlea [324] => & [325] => Exts, [326] => Randburg, [327] => Gauteng, [328] => South [329] => Africa xsi:type="xsd:string">26932527 xsi:type="xsd:string">ADNAPGD222R123234 xsi:type="tns:get_vehicle_last_positionsResultType0Row"> xsi:type="xsd:string">174261628 xsi:type="xsd:string">FF98ZWGP xsi:type="xsd:string">2020-07-01 [336] => 08:04:03+02 xsi:type="xsd:string"> xsi:type="xsd:double">-26.129867 xsi:type="xsd:double">28.164617 xsi:type="xsd:string">15 xsi:type="xsd:string">Erasmus [342] => Avenue, [343] => Eden [344] => Glen, [345] => Edenvale, [346] => Gauteng, [347] => South [348] => Africa xsi:type="xsd:string">110330236 xsi:type="xsd:string">ADNU5N1D5U0112998 xsi:type="tns:get_vehicle_last_positionsResultType0Row"> xsi:type="xsd:string">174261922 xsi:type="xsd:string">JG94XXGP xsi:type="xsd:string">2020-06-30 [355] => 13:49:51+02 xsi:type="xsd:string"> xsi:type="xsd:double">-26.130232 xsi:type="xsd:double">28.159559 xsi:type="xsd:string">0 xsi:type="xsd:string">Diaz [361] => Avenue, [362] => Eastleigh, [363] => Edenvale, [364] => Gauteng, [365] => South [366] => Africa xsi:type="xsd:string">24696958 xsi:type="xsd:string">ADNUSN1D5U0174093 xsi:type="tns:get_vehicle_last_positionsResultType0Row"> xsi:type="xsd:string">174262077 xsi:type="xsd:string">FX50RTGP xsi:type="xsd:string">2020-07-01 [373] => 08:03:26+02 xsi:type="xsd:string"> xsi:type="xsd:double">-26.08572 xsi:type="xsd:double">28.133629 xsi:type="xsd:string">0 xsi:type="xsd:string">Clulee [379] => Road, [380] => Linbro [381] => Park [382] => AH, [383] => Sandton, [384] => Gauteng, [385] => South [386] => Africa xsi:type="xsd:string">108068376 xsi:type="xsd:string">ADNSUN1D5U0128530 xsi:type="tns:get_vehicle_last_positionsResultType0Row"> xsi:type="xsd:string">176362877 xsi:type="xsd:string">FJ14LJGP xsi:type="xsd:string">2020-07-01 [393] => 08:02:22+02 xsi:type="xsd:string"> xsi:type="xsd:double">-26.111907 xsi:type="xsd:double">28.151657 xsi:type="xsd:string">0 xsi:type="xsd:string">Willow [399] => Way, [400] => Greenstone [401] => Hill, [402] => Kempton [403] => Park, [404] => Gauteng, [405] => South [406] => Africa xsi:type="xsd:string">85623895 xsi:type="xsd:string">ADNUSN1D5U0115408 xsi:type="tns:get_vehicle_last_positionsResultType0Row"> xsi:type="xsd:string">176819319 xsi:type="xsd:string">JL90NYGP xsi:nil="true" [413] => xsi:type="xsd:string"/> xsi:type="xsd:string"> xsi:nil="true" [416] => xsi:type="xsd:double"/> xsi:nil="true" [418] => xsi:type="xsd:double"/> xsi:nil="true" [420] => xsi:type="xsd:string"/> xsi:nil="true" [422] => xsi:type="xsd:string"/> xsi:nil="true" [424] => xsi:type="xsd:string"/> xsi:type="xsd:string">ASNUSN1DSU0175716 ) How di i get this into a format to import into mysql hi, there is a script or something that can read this file? http://ical.imac.com/ical/portuguese32holidays.ics the ideia is to save all days and holidays for a mysql and then update time to time. thanks for your help [LIST=1] CSV File Reading Displaying CSV file: Clicking the Show Logfile.txt link at the top of the page should display the CSV records inside logfile.txt Displaying CSV records formatted : Clicking the Show logfile.txt Formatted should display the CSV records formatted in an HTML table is descending order (more recent records are at the top). Use this function to convert CSV records back to an array : fgetcsv() I have most of this done and the problem I'm having is trying to read what I put into the file. (I hard coded what should go into the file). Could you tell me what I'm doing wrong and what I should do to fix it? Code: [Select] <? if ($_POST['_act'] = 'csv'): $fp = fopen('logfile.txt', 'a'); while (($data = fgetcsv($fp, 1000, ",")) !== FALSE){ print_r($data); } fclose($fp); endif; if ($_SERVER['REQUEST_METHOD'] == 'POST'): if (empty($_POST['fullname'])): $errMsg['fullname'] = "Please fill in Your Full Name."; endif; if (ereg("'Mr\. '", $_POST['fullname']) == false): $errMsg['fullname'] = "Please fill in Your Full Name."; endif; print_r($errMsgs); echo count($errMsgs); if (count($disperrMsgs > 0)): $dispErrMsgs = true; else: $fp = fopen('logfile.txt', 'a'); $fputcsv($fp, array("test", "lol", "roool")); fclose($fp); $dispSuccessMsg = true; endif; endif; ?> <html> <head> <style type="text/css"> h1 {color:red} div.error {border: 1px solid red; margin: 20px; padding: 20px; width: 400px} table {border: 1px solid #CCC; margin: 20px; border-collapse: collapse;} td, th {border: 1px solid #DDD; padding: 2px} th {background-color:#363; color: white} td.error {color:red} div.success {border: 1px solid green; margin: 20px; padding: 20px; width: 400px; color:green} </style> </head> <body> <h1> Form Validation Lab with Reg Expressions </h1> <p><a href="<?= $_SERVER['PHP_SELF'] ?> ">Refresh This Page</a> | <a href="./logfile.txt">Show Logfile.txt</a> | <a href="<?= $_SERVER['PHP_SELF'] ?>?_act=csv">Show logfile.txt Formatted</a> <a href="<?= $_SERVER['PHP_SELF'] ?>?_act=clear">Clear logfile.txt </a></p> <? if ($dispErrMsgs): ?> <div class="error"> <p>There are errors in the code: </p> <ol> <? foreach($errMsg as $errMsgs ): ?> <li><?= $errMsgs ?></li> <? endforeach; ?> </ol> </div> <? endif; ?> <? if ($dispSuccessMsg): ?> <div class="success"> <p>Thank you for your submission. </p> </div> <? endif; ?> <form action="<?= $_SERVER['PHP_SELF'] ?>" name="getstuff" method="post" > <input type="hidden" name="_act" value="post"> <table cellspacing = "0"> <tr> <th width="78">Full Name:</th> <td width="184"><input name="fullname" type="text" class="textbox" value="<? $_POST['fullname']; ?>" size="20" ></td> <td width="626" >Salution of Mr. or Mrs. followed by two text strings separated by any number of spaces. </td> </tr> <tr> <th>Street:</th> <td><input name="street" type="text" class="textbox" value="<? $_POST['street']; ?>" size="30"></td> <td >2 or 3 digit number followed by a text string ending with Street or Road separated by any number of spaces. </td> <tr> <th>Phone:</th> <td><input name="phone" type="text" class="textbox" value="<? $_POST['phone']; ?>" size="20"></td> <td >10 digits, first 3 digits have optional parentheses, either side of digits 456 are optional space, dot or hyphen. </td> </tr> <tr> <th>PostalCode:</th> <td><input name="postcode" type="text" class="textbox" value="<? $_POST['postcode']; ?>" size="8" maxlength="8"></td> <td > Postal Code: Char Char Digit Hyphen/space Char Digit Digit (No XYZ or 0's. Case insensitive. )</td> </tr> <tr> <th>Email:</th> <td><input name="email" type="text" class="textbox" value="<? $_POST['email']; ?>" size="25" maxlength="40"></td> <td > Must accept as a minimum : a@b.com</td> </tr> </table> <input name="reset" type='button' class="button" value='RESET' onClick="location.href = location.href"> <input name="_submit" type="submit" class="button" value="Submit me now!!!" > </form> <p id="notice">Everything below here is for testing purposes Don't remove this from your lab as I will use these buttons to fill your form with good and bad data as I mark it.</p> <script> az=document.getstuff; function goodstuff(){ az.fullname.value=" Mr. Joe Smith "; az.street.value="135 Fennell Road "; az.phone.value="905-575.1212"; az.postcode.value="Ln9-T23"; az.email.value="jsmith@gov.ca"; } function goodstuff2(){ az.fullname.value=" Mrs. Josephine Smith "; az.street.value=" 13 Fennell Street"; az.phone.value=" (905)-575.1212 "; az.postcode.value=" Ln9 T23"; az.email.value=" jsmith@gov.ca "; } function badstuff(){ az.fullname.value="Miss Josephine Smith"; az.street.value="1 Somewhere Avenue"; az.phone.value="905575122"; az.postcode.value="Z8N 3T2"; az.email.value="jsmith$gov#ca"; } function badstuff2(){ az.fullname.value=" Joe Smith "; az.street.value=" 1392 Fennell Street"; az.phone.value="[905] 575-1212"; az.postcode.value=" Ly9 T20"; az.email.value=" @jsmith$gov#ca"; } function goodandbad(){ az.fullname.value="Mrs. Joe"; az.street.value=" 135 Fennell Avenue West"; az.phone.value="905:5751212"; az.postcode.value=" L99-T23"; az.email.value=" jsmith@.gov.ca "; } </script> <form> <input type=button class="button" onClick="goodstuff();" value="Fill form with good values " length=100 > <input type=button class="button" onClick="goodstuff2();" value="Fill form with good values 2 " > <input type=button class="button" onClick="badstuff();" value="Fill form with BAD values "> <input type=button class="button" onClick="badstuff2();" value="Fill form with BAD values 2 "> <input type=button class="button" onClick="goodandbad();" value="Fill form with Good and BAD values 2"> <br> </form> </BODY> </HTML> |