PHP has encountered an Access Violation at 77BD3CF2 SiteSrch

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
webphoenix
Forum Newbie
Posts: 5
Joined: Fri Apr 13, 2007 10:57 am

PHP has encountered an Access Violation at 77BD3CF2 SiteSrch

Post by webphoenix »

I have been receiving PHP has encountered an Access Violation at 77BD3CF2 errors using the code below:-
However this same code was used in two other websites and worked fine. The problem seems to only be with this website:-

http://www.medical-page.co.uk/mdi

try typing anything over three characters and clicking (with mouse) the search button.

The following websites work fine, however aren't different from the one above, as far as i can see code wise!?!
http://www.cardiologist.uk.com/
http://www.medical-page.co.uk/SOSSMC/

Does anyone know where the problem is in the code below? Or what the problem might be?

The code below is a PhP Site Search:-

Code: Select all

<?php

class SiteSearch
{

    var $section_list;             // (array)
    var $search_dir_list;          // (array)
    var $excluded_dir_list;        // (array)
    var $documents_extension_list; // (array)
    var $images_extension_list;    // (array)
    var $results_per_page;         // (int)
    var $minimun_word_size;        // (int)

    var $search_in_docs;           // (bool)
    var $search_in_imgs;           // (bool)
    var $exact_search;             // (bool)
    var $show_details;             // (bool)

    var $search;                   // (string)
    var $total_searched;           // (int)
    var $total_found;              // (int)
    var $search_time;              // (float)
    var $search_pattern;           // (string)
    var $extension_pattern;        // (string)

    var $error_message;            // (string)

    var $powerthumb_file;          // (string) Path to PowerThumb class file
    var $thumb;                    // (mixed)  It is an "object" if PowerThumb class exists. If not, is "false"


    function SiteSearch($section_list = array(),
                         $excluded_dir_list = array(),
                         $documents_extension_list = array("htm", "html", "shtml", "php", "php3", "jsp", "asp", "pdf", "txt"),
                         $images_extension_list = array("jpg", "jpeg", "gif", "png", "bmp")
                         )
    {

        $this->section_list             = (array)$section_list;
        $this->search_dir_list          = array();
        $this->excluded_dir_list        = (array)$excluded_dir_list;
        $this->documents_extension_list = (array)$documents_extension_list;
        $this->images_extension_list    = (array)$images_extension_list;
        $this->results_per_page         = 10;
        $this->minimun_word_size        = 3;


        $this->search_in_docs = true;
        $this->search_in_imgs = false;
        $this->show_details   = true;
        $this->exact_search   = (isset($_GET['exact_search'])  &&  $_GET['exact_search'] == 'yes')  ?  true  :  false;


        $this->search            = (isset($_GET['search']))  ?  trim($_GET['search'])  :  "";
        $this->total_searched    = 0;
        $this->total_found       = 0;
        $this->search_pattern    = "";
        $this->extension_pattern = "";

        $this->error_message = "";

        $this->powerthumb_file = "";
        $this->thumb           = false;
    }



    function search()
    {

        if (!isset($_GET['search']))
        {
            return false;
        }


        // Changes flags to make sure the search will be in documents OR images, not both

        if ($this->search_in_docs  &&  $this->search_in_imgs)
        {
            if (isset($_GET['search_in'])  &&  $_GET['search_in'] == 'imgs')
            {            
                $this->search_in_docs = false;
            }
            else
            {
                $this->search_in_imgs = false;
            }
        }
        else if (!$this->search_in_imgs)
        {
            $this->search_in_docs = true;
        }
        else if (!$this->search_in_docs)
        {
            $this->search_in_imgs = true;
        }



        // Starts time counter
        $start = $this->getMicrotime();



        // Creates a search pattern

        if ($this->exact_search  &&  strlen($this->search) > $this->minimun_word_size)
        {
            $this->search_pattern = $this->createPattern($this->search);
        }
        else
        {
            $search_words = array();
            foreach (explode(" ", $this->search) as $word)
            {
                if (strlen($word) < $this->minimun_word_size)
                {
                    continue;
                }

                $search_words[] = $this->createPattern($word);
            }

            $this->search_pattern = implode("|", $search_words);

            unset($search_words);
        }


        // Creates extensions pattern, and if the search is for images, try to load PowerThumb class

        if ($this->search_in_docs)
        {
            $this->extension_pattern = '(' . implode("|", $this->documents_extension_list) . ')$';
        }
        else if ($this->search_in_imgs)
        {
            $this->extension_pattern = '(' . implode("|", $this->images_extension_list) . ')$';

            if (!class_exists("PowerThumb")) {
                if (file_exists($this->powerthumb_file)) {
                    include_once $this->powerthumb_file;
                }
                else if (file_exists(dirname(__FILE__) . '/class.thumb.php')) {
                    include_once dirname(__FILE__) . '/class.thumb.php';
                }
                else if (file_exists(dirname(__FILE__) . '/class.thumbs.php')) {
                    include_once dirname(__FILE__) . '/class.thumbs.php';
                }
            }

            if (class_exists("PowerThumb"))
            {
                $this->thumb = new PowerThumb();
                $this->thumb->setStyle("float", "left");
                $this->thumb->setStyle("margin", "5px");
                $this->thumb->setStyle("border", "1px solid #999999");
            }
        }



        if (isset($_GET['section'])  &&  isset($this->section_list[$_GET['section']]))
        {
            $this->search_dir_list = array($this->section_list[$_GET['section']]);
        }




        // Verifies for valid patterns

        if ($this->search_pattern == "")
        {
            $this->error_message = "Search words must have at least " . $this->minimun_word_size . " characters.";
            return false;
        }

        else if ($this->extension_pattern == "")
        {
            $this->error_message = $this->error("No file extensions were defined.");
            return false;
        }

        else if (!(count($this->search_dir_list) > 0))
        {
            $this->error_message = "Please select a section.";
            return false;
        }



        ini_set("max_execution_time", "120");
        ini_set("memory_limit", "10000000");





        $protocol      = explode("/", strtolower($_SERVER['SERVER_PROTOCOL']));
        $host          = $protocol[0] . "://" . $_SERVER['HTTP_HOST'];
        $printing_page = $page = 1;


        $html = "\n\n  <div id=\"page_1\" style=\"display: block;\">";

        while (($dir = array_shift($this->search_dir_list)) !== NULL)
        {
            if (($dh = @opendir($dir)) === false)
            {
                $this->error("Could not open search directory!");
            }


            while (($file = @readdir($dh)) !== false)
            {
                $file_path = $dir . $file;

                if (is_dir($file_path))
                {
                    if ($file == "."  ||  $file == ".."  ||  in_array(realpath($file_path), $this->excluded_dir_list))
                    {
                        continue;
                    }

                    // Feeds search dir list with subdirectories
                    $this->search_dir_list[] = $file_path.'/';
                    continue;
                }

                else if (!preg_match("/".$this->extension_pattern."/i",  $file))
                {
                    continue;
                }


                $this->total_searched++;


                if ($this->search_in_docs) {
                    $file_content = @file_get_contents($file_path);
                    $file_content = html_entity_decode($this->clearSpaces($this->stripScriptTags($file_content)));
                }
                else if ($this->search_in_imgs) {
                    $file_content = "";
                }



                if (preg_match("'".$this->search_pattern."'si", $file_content, $matches, PREG_OFFSET_CAPTURE)  ||  
                    preg_match("'".$this->search_pattern."'i", $file))
                {

                    $this->total_found++;

                    $position = isset($matches[0][1])  ?  $matches[0][1]  :  0;



                    $page = ceil($this->total_found / $this->results_per_page);

                    if ($this->total_found == 1)
                    {
                        $html .= "\n\n    <script type=\"text/javascript\">\n      show_pages_links(" . ($page) . ");\n    </script>\n";
                    }
                    else if ($page != $printing_page)
                    {
                        $printing_page = $page;

                        $html .= "\n\n    <script type=\"text/javascript\">\n      show_pages_links(" . ($page-1) . ");\n    </script>\n";
                        $html .= "\n  </div>";
                        $html .= "\n  <div id=\"page_" . $page . "\" style=\"display: none;\">";
                        $html .= "\n\n    <script type=\"text/javascript\">\n      show_pages_links(" . ($page) . ");\n    </script>\n";
                    }



                    $path  = $this->realPath($host . dirname($_SERVER['SCRIPT_NAME']) . "/" . $file_path);

                    $title = $this->getTitle($file_content);

                    if ($title == "")
                    {
                        $title = $path;
                    }


                    // Sets "description"

                    if ($this->search_in_docs)
                    {
                        $file_content = $this->clearSpaces(strip_tags($file_content));

                        if ($position < 120) {
                            $description = substr($file_content, 0, 350);
                        }
                        else {
                            $description = substr($file_content, ($position-120), ($position+120));

                            if (strlen($description) > 350) {
                                $description = substr($description, 0, 350);
                            }
                        }

                        $description = preg_replace("'^([^\s]*\s.*?)\s[^\s]*$'i", "\\1", $description);
                        $description = preg_replace("'(".$this->search_pattern.")'i", "<strong><span class=\"highlight\">\\1</span></strong>", $description);

                        if ($description == "") {
                            $description = "No description.";
                        }
                        else if (strlen($description) < strlen($file_content)) {
                            $description .= " ...";
                        }
                    }

                    else if ($this->search_in_imgs)
                    {
                        $description = "";
                        $title       = $file;
                        $info        = getimagesize($file_path);

                        if ($this->thumb) {
                            $description .= $this->thumb->create($file_path, false);
                        }

                        $description .= "Size: " . $info[0] . " x " . $info[1] . " pixels<br />";
                        $description .= "Bits: " . $info['bits'] . "<br />";
                        $description .= (isset($info['channels']))  ?  "Channels: " . $info['channels'] . "<br />"  :  "";
                        $description .= "Mime-type: " . $info['mime'] . "<br /><br />";
                        $description .= '<a href="' . $file_path . '">' . $path . '</a>';
                        $description .= "\n".'<div style="clear: both;"></div>';

                        $path = "";
                    }



                    $html .= "\n<p style=\"margin: 30px 0px;\" >";
					// Creates space between paragraphs
                    $html .= "\n  <div class=\"title\">";
                    $html .= "\n    ".$this->total_found . '. <a href="'.$file_path.'">' . $title . '</a>';
                    $html .= "\n  </div>";
                    $html .= "\n  <div class=\"description\">";
                    $html .= "\n  " . $description;
                    $html .= "\n  </div>";
                    $html .= "\n  <div class=\"path\">";
                    $html .= "\n    <a href=\"" . $file_path . "\">" . $path . "</a>";
                    $html .= "\n  </div>";
                    $html .= "\n</p>\n";


                } //  if (preg_match("'".$this->search_pattern."'si", $file_content, $matches, PREG_OFFSET_CAPTURE))

            } //  while (($file = @readdir($dh)) !== false)

            @closedir($dh);

        } //  while (($dir = array_shift($this->search_dir_list)) != false)

        $html .= "  <script type=\"text/javascript\">\n  show_pages_links(" . $page . ");\n</script>\n";
        $html .= "</div>";

        clearstatcache();

        $this->search_time = number_format(  ($this->getMicrotime() - $start)  , 2, ".", ",");



        $javascript  = "\n  <script type=\"text/javascript\">";
        $javascript .= "\n    var showed_page = 1;";
        $javascript .= "\n    var total_pages = " . $page . ";";  // last value assigned to $page is equal to the total of pages
        $javascript .= "\n";
        $javascript .= "\n    function show_page(id) {";
        $javascript .= "\n        hide_page(showed_page);";
        $javascript .= "\n        document.getElementById('page_' + id).style.display = 'block';";
        $javascript .= "\n        showed_page = id;";
        $javascript .= "\n    }";
        $javascript .= "\n";
        $javascript .= "\n    function hide_page(id) {";
        $javascript .= "\n        document.getElementById('page_' + id).style.display = 'none';";
        $javascript .= "\n    }";
        $javascript .= "\n";
        $javascript .= "\n    function show_pages_links(page_number) {";
        $javascript .= "\n        document.write('<div class=\"pages_links\">');";
        $javascript .= "\n";
        $javascript .= "\n        if (page_number > 1) {";
        $javascript .= "\n            document.write('<a href=\"javascript: scroll(0, 0);\" onclick=\"javascript: show_page(' + (page_number-1) + ');\">');";
        $javascript .= "\n        }";
        $javascript .= "\n        document.write(' << Previous ');";
        $javascript .= "\n        if (page_number > 1) {";
        $javascript .= "\n            document.write('</a>');";
        $javascript .= "\n        }";
        $javascript .= "\n";
        $javascript .= "\n        document.write(' | ');";
        $javascript .= "\n";
        $javascript .= "\n        for (var i = 1; i <= total_pages; i++) {";
        $javascript .= "\n            if (page_number != i) {";
        $javascript .= "\n                document.write('<a href=\"javascript: scroll(0, 0);\" onclick=\"javascript: show_page(' + i + ');\">');";
        $javascript .= "\n            }";
        $javascript .= "\n            document.write(i);";
        $javascript .= "\n            if (page_number != i) {";
        $javascript .= "\n                document.write('</a>');";
        $javascript .= "\n            }";
        $javascript .= "\n            document.write(' | ');";
        $javascript .= "\n        }";
        $javascript .= "\n";
        $javascript .= "\n";
        $javascript .= "\n        if ((total_pages > 1) && (page_number < total_pages)) {";
        $javascript .= "\n            document.write('<a href=\"javascript: scroll(0, 0);\" onclick=\"javascript: show_page(' + (page_number+1) + ');\">');";
        $javascript .= "\n        }";
        $javascript .= "\n        document.write(' Next >> ');";
        $javascript .= "\n        if ((total_pages > 1) && (page_number < total_pages)) {";
        $javascript .= "\n            document.write('</a>');";
        $javascript .= "\n        }";
        $javascript .= "\n";
        $javascript .= "\n        document.write('</div>');";
        $javascript .= "\n    }";
        $javascript .= "\n";
        $javascript .= "\n  </script>";



        $result  = $javascript;
        $result .= $html;

        return $result;
    }



    function getMicrotime() {
        list($usec, $sec) = explode(" ", microtime());
        return ((float)$usec + (float)$sec);
    }

    function getTitle($html) {
        $title = "";
        if (preg_match("'<title>'si", $html)) {
            $title = preg_replace("'^.*?<title>|</title>.*$'si", "", $html);
            if (empty($title)) {
                $title = "Untitled Page";
            }
        }
        return strip_tags($title);
    }

    function stripScriptTags($string) {
        $pattern = array("'\/\*.*\*\/'si", "'<\?.*?\?>'si", "'<%.*?%>'si", "'<script[^>]*?>.*?</script>'si");
        $replace = array("", "", "", "");
        return preg_replace($pattern, $replace, $string);
    }

    function clearSpaces($string, $clear_enters = true) {
        $pattern = ($clear_enters == true) ? ("/\s+/") : ("/[ \t]+/");
        return preg_replace($pattern, " ", trim($string));
    }

    function createPattern($string) {
        $string  = preg_replace("/([\.\/\*\+\-\?\^\|\$\(\)\[\]\{\}\"\'\\\\])/s", "\\\\\\1", $string);
        $pattern = array("/[aàáâäã]/si", "/[eèéêë]/si", "/[iìíîï]/si", "/[oòóôöõ]/si", "/[uùúûü]/si", "/[ç]/si", "/[ñ]/si", "/\s+/s");
        $replace = array("[aàáâäã]",     "[eèéêë]",     "[iìíîï]",     "[oòóôöõ]",     "[uùúûü]",     "[çc]",    "[ñn]",    "\s*");
        return preg_replace($pattern, $replace, addslashes($string));
    }

    function realPath($path)
    {
        if ($path == "")
        {
            return false;
        }

        $path = trim(preg_replace("/\\\\/", "/", (string)$path));

        if (!preg_match("/(\.\w{1,4})$/", $path)  &&  !preg_match("/\?[^\\/]+$/", $path)  &&  !preg_match("/\\/$/", $path))
        {
            $path .= '/';
        }

        preg_match_all("/^(\\/|\w:\\/|https?:\\/\\/[^\\/]+\\/)?(.*)$/i", $path, $matches, PREG_SET_ORDER);

        $path_root = $matches[0][1];
        $path_dir  = $matches[0][2];

        $path_dir   = preg_replace(  array("/^\\/+/", "/\\/+/"),  array("", "/"),  $path_dir  );
        $path_parts = explode("/", $path_dir);

        for ($i = $j = 0, $real_path_parts = array(); $i < count($path_parts); $i++)
        {
            if ($path_parts[$i] == '.')
            {
                continue;
            }
            else if ($path_parts[$i] == '..')
            {
                if (  (isset($real_path_parts[$j-1])  &&  $real_path_parts[$j-1] != '..')  ||  ($path_root != "")  )
                {
                    array_pop($real_path_parts);
                    $j--;
                    continue;
                }
            }

            array_push($real_path_parts, $path_parts[$i]);
            $j++;
        }

        return $path_root . implode('/', $real_path_parts);
    }


    function error($message)
    {
        return '<span style="padding: 1px 7px 1px 7px; background-color: #ffd7d7; font-family: verdana; color: #000000; font-size: 13px;"><span style="color: #ff0000; font-weight: bold;">Error!</span> ' . $message . '</span><br /><br /><br />';
	}




    /*@#+
    *  @access public
    */
    function addSection($section, $dir)
    {
        $this->section_list[(string)$section] = (string)$dir;
    }

    function hideDir($dir)
    {
        $this->excluded_dir_list[] = realpath((string)$dir);
    }


    function addDocumentExtension($extension)
    {
        $this->documents_extension_list[] = (string)$extension;
    }

    function hideDocumentExtension($extension)
    {
        foreach ($this->documents_extension_list as $i => $ext)
        {
            if ($ext == $extension)
            {
                unset($this->documents_extension_list[$i]);
                break;
            }
        }
    }


    function addImageExtension($extension)
    {
        $this->images_extension_list[] = (string)$extension;
    }

    function hideImageExtension($extension)
    {
        foreach ($this->images_extension_list as $i => $ext)
        {
            if ($ext == $extension)
            {
                unset($this->images_extension_list[$i]);
                break;
            }
        }
    }


    function searchInDocuments($search = true)
    {
        $this->search_in_docs = (bool)$search;
    }


    function searchInImages($search = true)
    {
        $this->search_in_imgs = (bool)$search;
    }

    function showDetails($show = true)
    {
        $this->show_details = (bool)$show;
    }



    function form($should_print = true)
    {
        if (isset($_SERVER['SCRIPT_NAME'])) {
            $action = $_SERVER['SCRIPT_NAME'];
        } else if (isset($_SERVER['PHP_SELF'])) {
            $action = $_SERVER['PHP_SELF'];
        } else if (isset($_SERVER['PATH_TRANSLATED'])) {
            $action = basename($_SERVER['PATH_TRANSLATED']);
        } else {
            $action = "#";
        }


        $search_in_docs = $this->search_in_docs;
        $search_in_imgs = $this->search_in_imgs;

        if ($search_in_docs  &&  $search_in_imgs)
        {
            if (isset($_GET['search_in'])  &&  $_GET['search_in'] == 'imgs')
            {            
                $search_in_docs = false;
            }
            else
            {
                $search_in_imgs = false;
            }
        }
        else if (!$search_in_imgs)
        {
            $search_in_docs = true;
        }
        else if (!$search_in_docs)
        {
            $search_in_imgs = true;
        }



        $checked_search_in_docs = ($search_in_docs)        ?  ' checked="checked"' : "";
        $checked_search_in_imgs = ($search_in_imgs)        ?  ' checked="checked"' : "";
        $checked_exact_search   = ($this->exact_search)    ?  ' checked="checked"' : "";


        if (count($this->section_list) > 1)
        {
            $sections  = "\n".'    <select name="section" id="section">';
            $sections .= "\n".'      <option value="">--- section ---</option>';

            foreach ($this->section_list as $section_name => $section_path)
            {
                $selected  = (isset($_GET['section'])  &&  $_GET['section'] == $section_name)  ?  ' selected="selected"'  :  "";
                $sections .= "\n".'      <option value="' . $section_name . '"' . $selected . '>' . $section_name . '</option>';
            }

            $sections .= "\n".'    </select>';
        }
        else
        {
            $sections = "";

            foreach ($this->section_list as $section_name => $section_path)
            {
                $sections .= "\n".'    <input type="hidden" name="section" id="section" value="' . $section_name . '" />';
            }
        }

// Name and method for search field input.
        $html  = "\n".'<form action="' . $action . '" method="get" name="search_form" style="text-align: center;" id="search_form">';
        $html .= "\n".'  <div class="search_input">';
        $html .= "\n".'    Search for';
        $html .= "\n".'    <input type="text" name="search" id="search" value="' . $this->search . '" />';
        $html .= $sections;
        $html .= "\n".'    <input type="submit" id="submit_button" value="search" />';
        $html .= "\n".'  </div>';

        if ($this->search_in_docs && $this->search_in_imgs)
        {
            $html .= "\n".'  <div class="search_type">';
            $html .= "\n".'    <input type="radio" name="search_in" id="search_in" value="docs"' . $checked_search_in_docs . ' /> Documents';
            $html .= "\n".'    <input type="radio" name="search_in" id="search_in" value="imgs"' . $checked_search_in_imgs . ' /> Images';
            $html .= "\n".'  </div>';
        }

        $html .= "\n".'  <div class="search_type">';
        $html .= "\n".'    <input type="checkbox" name="exact_search" id="exact_search" value="yes"' . $checked_exact_search . ' /> Exact Search';
        $html .= "\n".'  </div>';
        $html .= "\n</form>\n";

        if ($should_print) {
            echo $html;
        } else {
            return $html;
        }
    }



    function results($print = true)
    {
        $search = $this->search();

        $html = "\n<div id=\"search_results\">";


        if (!$search)
        {
            $html .= $this->error_message;
        }
        else if ($this->show_details)
        {
            $html .= "\n Found " . $this->total_found . " matches in " . $this->total_searched . " files<br />";
            //The $html means that this script is producing it as HTML and therefor showing it on screen.
			//$html .= "\n Time: " . $this->search_time . " sec<br />";
        }

        $html .= $search;
        $html .= "\n</div>";

        if ($print) {
            echo $html;
        } else {
            return $html;
        }
    }
    //@#+

}



?>

The following code is at the very top of the search webpage

Code: Select all

<?php
// All php code goes above HTML

// Imports SiteSearch class
require_once "class.search.php";

// Creates and object called "$Search"
$Search = new SiteSearch();
?>

The next bit of code sits in the page content

Code: Select all

<?php

$Search = new SiteSearch();


// This will create search sections (you MUST create at least one).
// All subdirectories will be searched in automatically
$Search->addSection("Search", "../");


// This will allow search in documents only
$Search->searchInDocuments(true);
$Search->searchInImages(false);


// This will hide directories that should NOT be opened by the search engine
$Search->hideDir("../includes/");
$Search->hideDir("../log_files/");
$Search->hideDir("../login/");
$Search->hideDir("../connections");
$Search->hideDir("../Templates");
$Search->hideDir("../signup");
$Search->hideDir("../images");


// This includes files .htm in the search results, and hides files .php
$Search->addDocumentExtension("htm");
$Search->hideDocumentExtension("php");


// Printing search form
$Search->form();


echo "Here are your search results: ";

// Printing search results
$Search->results();

?>

Does anyone know what i need to change to make this site search work in this URL?

http://www.medical-page.co.uk/mdi

Thanks
User avatar
RobertGonzalez
Site Administrator
Posts: 14293
Joined: Tue Sep 09, 2003 6:04 pm
Location: Fremont, CA, USA

Post by RobertGonzalez »

Are all three platforms the same?

Run the following on three servers and tell us the results please.

Code: Select all

<?php

$neg = array('off', 0, false, '', null);
$flags = array(
	'Register Globals' => 'register_globals',
	'Short Tags' => 'short_open_tag',
	'Display Errors' => 'display_errors',
	'Magic Quotes GPC' => 'magic_quotes_gpc',
	'Magic Quotes Runtime' => 'magic_quotes_runtime',
	'Magic Quotes Sybase' => 'magic_quotes_sybase',
);
$ve = phpversion();
$os = PHP_OS;
$er = intval(error_reporting());
foreach ($flags as $n => $v)
{
	$flags[$n] = (in_array(strtolower(ini_get($v)), $neg) ? 'Off' : 'On');
}
$flags['Config file'] = get_cfg_var('cfg_file_path');
if (empty($flags['Config file']))
{
	$flags['Config file'] = '-';
}
$cli = (php_sapi_name() == 'cli');
$eol = "
";

$gle = get_loaded_extensions();
$rows = array();
$le = '';
$wide = 4;
$j = count($gle);
$pad = $wide - $j % $wide;
$len = max(array_map('strlen', $gle));
$func = create_function('$a', 'return str_pad($a, ' . intval($len) . ');');
$gle = array_map($func, $gle);
for($i = 0; $i < $j; $i += $wide)
{
	$le .= '   ' . implode('   ', array_slice($gle, $i, $wide)) . $eol;
}

$ec = array(
	'E_STRICT' => 2048, 'E_ALL' => 2047, 'E_USER_NOTICE' => 1024,
	'E_USER_WARNING' => 512, 'E_USER_ERROR' => 256, 'E_COMPILE_WARNING' => 128,
	'E_COMPILE_ERROR' => 64, 'E_CORE_WARNING' => 32, 'E_CORE_ERROR' => 16,
	'E_NOTICE' => 8, 'E_PARSE' => 4, 'E_WARNING' => 2, 'E_ERROR' => 1,
);

$e = array();
$t = $er;
foreach ($ec as $n => $v)
{
	if (($t & $v) == $v)
	{
		$e[] = $n;
		$t ^= $v;
	}
}
if (ceil(count($ec) / 2) + 1 < count($e))
{
	$e2 = array();
	foreach ($ec as $n => $v)
	{
		if (!in_array($n, $e) and $n != 'E_ALL')
		{
			$e2[] = $n;
		}
	}
	$er = $er . ' ((E_ALL | E_STRICT) ^ ' . implode(' ^ ', $e2) . '))';
}
else
{
	$er = $er . ' (' . implode(' | ', $e) . ')';
}

if (!$cli)
{
	echo '<html><head><title>quick info</title></head><body><pre>', $eol;
}

echo 'PHP Version: ', $ve, $eol;
echo 'PHP OS: ', $os, $eol;
echo 'Error Reporting: ', $er, $eol;
foreach ($flags as $n => $v)
{
	echo $n, ': ', $v, $eol;
}
echo 'Loaded Extensions:', $eol, $le, $eol;

if (!$cli)
{
	echo '</pre></body></html>', $eol;
}

?>
webphoenix
Forum Newbie
Posts: 5
Joined: Fri Apr 13, 2007 10:57 am

PhP Site Search troubles with a particular domain name

Post by webphoenix »

Hi I tried inserting this code just under the search script. If you type two characters into the site search field and click search you will be able to see the results. The OS is Windows by the way. We only have one server.

http://www.medical-page.co.uk/mdi/Searc ... ion=Search

http://www.cardiologist.uk.com/Search/S ... ion=Search

Above are two examples showing the results the PhP script you provided me gives.

How does this help to identify the problem?

Thanks again...
User avatar
RobertGonzalez
Site Administrator
Posts: 14293
Joined: Tue Sep 09, 2003 6:04 pm
Location: Fremont, CA, USA

Post by RobertGonzalez »

Server 1

Code: Select all

PHP Version: 4.3.10 
PHP OS: WINNT 
Error Reporting: 2047 (E_ALL) 
Register Globals: Off 
Short Tags: On 
Display Errors: Off 
Magic Quotes GPC: Off 
Magic Quotes Runtime: Off 
Magic Quotes Sybase: Off 
Config file: C:\PHP\php.ini 
Loaded Extensions: 
   standard     bcmath       calendar     ctype      
   com          ftp          mysql        odbc       
   overload     pcre         session      tokenizer  
   xml          wddx         zlib         ISAPI      
   bz2          cpdf         crack        curl       
   domxml       exif         fdf          filepro    
   gd           gettext      hyperwave    iconv      
   imap         mbstring     mhash        mime_magic 
   ming         mssql        openssl      pdf        
   sockets      xmlrpc       xslt         yaz        
   zip
Server2

Code: Select all

PHP Version: 4.3.10 
PHP OS: WINNT 
Error Reporting: 2047 (E_ALL) 
Register Globals: Off 
Short Tags: On 
Display Errors: Off 
Magic Quotes GPC: Off 
Magic Quotes Runtime: Off 
Magic Quotes Sybase: Off 
Config file: C:\PHP\php.ini 
Loaded Extensions: 
   standard     bcmath       calendar     ctype      
   com          ftp          mysql        odbc       
   overload     pcre         session      tokenizer  
   xml          wddx         zlib         ISAPI      
   bz2          cpdf         crack        curl       
   domxml       exif         fdf          filepro    
   gd           gettext      hyperwave    iconv      
   imap         mbstring     mhash        mime_magic 
   ming         mssql        openssl      pdf        
   sockets      xmlrpc       xslt         yaz        
   zip
User avatar
RobertGonzalez
Site Administrator
Posts: 14293
Joined: Tue Sep 09, 2003 6:04 pm
Location: Fremont, CA, USA

Post by RobertGonzalez »

By chance, I did a search for PHP has encountered an Access Violation and got a pretty good number of results.

I think it might have to do with PHP trying to access a DLL file that it does not have permission to access.
User avatar
stereofrog
Forum Contributor
Posts: 386
Joined: Mon Dec 04, 2006 6:10 am

Re: PHP has encountered an Access Violation at 77BD3CF2 Site

Post by stereofrog »

webphoenix wrote:I have been receiving PHP has encountered an Access Violation at 77BD3CF2 errors using the code below:
It's not your failure, it's a bug in php. Try using most recent php version (4.4.6 or 5.2.1).
webphoenix wrote: class SiteSearch {
<1 mb of code >
}
Are you really expecting someone to debug this for you? ;)
webphoenix
Forum Newbie
Posts: 5
Joined: Fri Apr 13, 2007 10:57 am

Post by webphoenix »

If it was a PhP problem then why does it work for one website but not another if they are using the same server and i am viewing it through the same browser!

Know of any other site searches i can try?

Are PhP updates free ?
User avatar
RobertGonzalez
Site Administrator
Posts: 14293
Joined: Tue Sep 09, 2003 6:04 pm
Location: Fremont, CA, USA

Post by RobertGonzalez »

PHP is free from top to bottom. Just snag the newest release and install it.
webphoenix
Forum Newbie
Posts: 5
Joined: Fri Apr 13, 2007 10:57 am

Site Search Script trouble

Post by webphoenix »

Something still doesn't make sense to me!

If this script above works on two websites using the same server and operating system then why would it not work on this site?

http://www.medical-page.co.uk/mdi

to me it makes sense that it is not a PhP update problem.

what other factors could affect this?
webphoenix
Forum Newbie
Posts: 5
Joined: Fri Apr 13, 2007 10:57 am

The script does not display content descriptions correctly

Post by webphoenix »

I found out how to fix the previous problem.

I omited PDFs from the search. It turns out that when this script looks through PDFs it throws up Access Violation Errors.

BUT the script does not display results properly. Anyone know what i need to set?

This is an example of what is sent back to the browser

Here are your search results:
Found 104 matches in 104 files

Check out this URL for the full experience! Or see below...

http://www.medical-page.co.uk/mdi


<< Previous | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Next >>

1. MDI - Disclaimer e Densitometry Guide to Mammography Guide to Ultrasound Scanning Non-Invasive Cardiac Imaging Obstetrics & Gynaecology Osteoperosis Preventive Medicine Magnetic Resonance Imaging Bone Densitometry Computed Tomography Digital X-Ray Mammography Nuclear Medicine Ultrasound Brentwood Diagnostic Centre Sevenoaks Diagnostic Centre Weybridge Diagnostic ... http://www.medical-page.co.uk/mdi/Disclaimer.htm


2. Homepage No description. http://www.medical-page.co.uk/mdi/Index.htm


3. Homepage No description. http://www.medical-page.co.uk/mdi/Index2.htm


4. About Us No description. http://www.medical-page.co.uk/mdi/AboutUs/AboutUs.htm


5. MDI - AboutUs - Charitable Activities No description. http://www.medical-page.co.uk/mdi/About ... vities.htm


6. MDI - AboutUs - Radiology and Patient Safety - Medical Doses compared to background Radiation No description. http://www.medical-page.co.uk/mdi/About ... iation.htm


7. MDI - AboutUs - Radiology and Patient Safety - Pregnancy and Diagnostic Imaging No description. http://www.medical-page.co.uk/mdi/About ... maging.htm


8. MDI - AboutUs - Radiology and Patient Safety No description. http://www.medical-page.co.uk/mdi/About ... Safety.htm


9. MDI - AboutUs - Radiology and Diagnostic Imaging No description. http://www.medical-page.co.uk/mdi/About ... maging.htm


10. MDI - Centres No description. http://www.medical-page.co.uk/mdi/Centres/Centres.htm

<< Previous | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Next >>
<< Previous | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Next >>

11. MDI - Contact Us No description. http://www.medical-page.co.uk/mdi/Conta ... tactUs.htm


12. MDI - Guides - Patient Guide To Ultrasound Scanning No description. http://www.medical-page.co.uk/mdi/Downl ... nloads.htm


13. MDI - Patient Guides No description. http://www.medical-page.co.uk/mdi/Patie ... Guides.htm


14. MDI - Guides - Patient Guide to MRI a computer system where detailed images of the body are then displayed. These images can then be manipulated to give better detail for various tissues, for example bone or lung, without the need for further scanning. Is it safe? We are all exposed to natural background radiation throughout our daily lives. This comes from the ground and from ... http://www.medical-page.co.uk/mdi/Patie ... deToCT.htm


15. MDI - Guides - Patient Guide to Bone Densitometry No description. http://www.medical-page.co.uk/mdi/Patie ... ometry.htm


16. MDI - Guides - Patient Guide To Mammography No description. http://www.medical-page.co.uk/mdi/Patie ... graphy.htm


17. MDI - Guides - Patient Guide to MRI No description. http://www.medical-page.co.uk/mdi/Patie ... eToMRI.htm


18. MDI - Guides - Patient Guide to Nuclear Medicine No description. http://www.medical-page.co.uk/mdi/Patie ... dicine.htm


19. MDI - Guides - Patient Guide To Ultrasound Scanning No description. http://www.medical-page.co.uk/mdi/Patie ... anning.htm


20. MDI - Guides - Patient Guide to X-ray No description. http://www.medical-page.co.uk/mdi/Patie ... ToXray.htm

<< Previous | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Next >>
<< Previous | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Next >>

21. MDI - Guides - Patient Guide to TEMPLATE No description. http://www.medical-page.co.uk/mdi/Patie ... tGuide.htm


22. MDI - Services - Bone Densitometry No description. http://www.medical-page.co.uk/mdi/Servi ... ometry.htm


23. MDI - Services - Computed Tomography ody. CT scanners produce cross-sectional slices of the body, which can be reconstructed to produce 3-dimensional images. CT uses x-rays in a rotating form. As a patient lies in the bore of the scanner, an x-ray rotates around the patient. This x-ray is continuously taking pictures, and each rotation produces a cross-sectional image of the body - ... http://www.medical-page.co.uk/mdi/Servi ... graphy.htm


24. MDI - Services - Digital X-ray No description. http://www.medical-page.co.uk/mdi/Servi ... lX-ray.htm


25. MDI - Services - Echocardiography No description. http://www.medical-page.co.uk/mdi/Servi ... graphy.htm


26. MDI - Services - Magnetic Resonance Imaging No description. http://www.medical-page.co.uk/mdi/Servi ... maging.htm


27. MDI - Services - Mammography No description. http://www.medical-page.co.uk/mdi/Servi ... graphy.htm


28. MDI - Services - Mammography No description. http://www.medical-page.co.uk/mdi/Servi ... eening.htm


29. MDI - Services - Nuclear Medicine No description. http://www.medical-page.co.uk/mdi/Servi ... dicine.htm


30. MDI - Services - Nuclear Medicine - Clinical Applications No description. http://www.medical-page.co.uk/mdi/Servi ... ations.htm

<< Previous | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Next >>
<< Previous | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Next >>

31. MDI - Services - OPG No description. http://www.medical-page.co.uk/mdi/Services/OPG.htm


32. MDI - Services No description. http://www.medical-page.co.uk/mdi/Services/Services.htm


33. MDI - Services - Ultrasound No description. http://www.medical-page.co.uk/mdi/Servi ... asound.htm


34. MDI - Services - Ultrasound - Ultrasound: Clinical Applications No description. http://www.medical-page.co.uk/mdi/Servi ... ations.htm


35. MDI - Services - ObstetricsAndGynaecology No description. http://www.medical-page.co.uk/mdi/Speci ... asound.htm


36. MDI - Specialities No description. http://www.medical-page.co.uk/mdi/Speci ... lities.htm


37. MDI - Brentwood Diagnostic Centre No description. http://www.medical-page.co.uk/mdi/Centr ... eIntro.htm


38. MDI - Brentwood Diagnostic Centre - Find Us - Directions No description. http://www.medical-page.co.uk/mdi/Centr ... ctions.htm


39. MDI - Brentwood Diagnostic Centre - Find Us No description. http://www.medical-page.co.uk/mdi/Centr ... FindUs.htm


40. MDI - Brentwood Diagnostic Centre - Services No description. http://www.medical-page.co.uk/mdi/Centr ... rvices.htm

<< Previous | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Next >>
<< Previous | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Next >>

41. MDI - Brentwood Diagnostic Centre - Specialists No description. http://www.medical-page.co.uk/mdi/Centr ... alists.htm


42. Staff No description. http://www.medical-page.co.uk/mdi/Centr ... /Staff.htm


43. MDI - Centres - LDSC Ultrasound - Directions No description. http://www.medical-page.co.uk/mdi/Centr ... ctions.htm


44. MDI - Centres - LDSC Ultrasound - Find Us No description. http://www.medical-page.co.uk/mdi/Centr ... FindUs.htm


45. MDI - Centres - LDSC Ultrasound No description. http://www.medical-page.co.uk/mdi/Centr ... asound.htm


46. MDI - Centres - LDSC Ultrasound - Services (Ultrasound) No description. http://www.medical-page.co.uk/mdi/Centr ... asound.htm


47. MDI - Centres - LDSC Ultrasound - Specialists (Reporting Doctors) No description. http://www.medical-page.co.uk/mdi/Centr ... alists.htm


48. MDI - Centres - LDSC Ultrasound - Staff No description. http://www.medical-page.co.uk/mdi/Centr ... /Staff.htm


49. MDI - Centres - Litfield House Radiology - Services - Dental X-ray No description. http://www.medical-page.co.uk/mdi/Centr ... alXRay.htm


50. MDI - Centres - Litfield House Radiology - Services - Ultrasound No description. http://www.medical-page.co.uk/mdi/Centr ... FindUs.htm

<< Previous | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Next >>
<< Previous | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Next >>

51. MDI - Centres - Litfield House Radiology No description. http://www.medical-page.co.uk/mdi/Centr ... iology.htm


52. MDI - Centres - Litfield House Radiology - Services No description. http://www.medical-page.co.uk/mdi/Centr ... rvices.htm


53. MDI - Centres - Litfield House Radiology - Specialists (Reporting Doctors) No description. http://www.medical-page.co.uk/mdi/Centr ... alists.htm


54. MDI - Centres - Litfield House Radiology - Staff No description. http://www.medical-page.co.uk/mdi/Centr ... /Staff.htm


55. MDI - Centres - Litfield House Radiology - Services - Ultrasound No description. http://www.medical-page.co.uk/mdi/Centr ... asound.htm


56. MDI - Centres - Litfield House Radiology - Services - X-ray No description. http://www.medical-page.co.uk/mdi/Centr ... y/XRay.htm


57. MDI - Centres - Sevenoaks - Find Us - Directions No description. http://www.medical-page.co.uk/mdi/Centr ... ctions.htm


58. MDI - Sevenoaks Diagnostic Centre - Find Us No description. http://www.medical-page.co.uk/mdi/Centr ... FindUs.htm


59. MDI - Sevenoaks Diagnostic Centre - Services No description. http://www.medical-page.co.uk/mdi/Centr ... rvices.htm


60. MDI - Sevenoaks Diagnostic Centre No description. http://www.medical-page.co.uk/mdi/Centr ... Centre.htm

<< Previous | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Next >>
<< Previous | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Next >>

61. MDI - Sevenoaks Diagnostic Centre - Specialists No description. http://www.medical-page.co.uk/mdi/Centr ... alists.htm


62. MDI - Sevenoaks Diagnostic Centre - Staff No description. http://www.medical-page.co.uk/mdi/Centr ... /Staff.htm


63. MDI - Centres - Weybridge Diagnostic Centre - Find Us - Directions No description. http://www.medical-page.co.uk/mdi/Centr ... ctions.htm


64. MDI - Centres - Weybridge Diagnostic Centre - Find Us No description. http://www.medical-page.co.uk/mdi/Centr ... FindUs.htm


65. MDI - Centres - Weybridge Diagnostic Centre - Services No description. http://www.medical-page.co.uk/mdi/Centr ... rvices.htm


66. Untitled Document No description. http://www.medical-page.co.uk/mdi/Centr ... alists.htm


67. MDI - Weybridge Diagnostic Centre - Staff No description. http://www.medical-page.co.uk/mdi/Centr ... /Staff.htm


68. MDI - Centres - Weybridge Diagnostic Centre No description. http://www.medical-page.co.uk/mdi/Centr ... Centre.htm


69. MDI - Services - Magnetic Resonance Imaging - MRI Background No description. http://www.medical-page.co.uk/mdi/Servi ... ground.htm


70. MDI - Services - Magnetic Resonance Imaging - MRI Background - MRI Detail No description. http://www.medical-page.co.uk/mdi/Servi ... ations.htm

<< Previous | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Next >>
<< Previous | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Next >>

71. MDI - Services - Dentistry No description. http://www.medical-page.co.uk/mdi/Speci ... tistry.htm


72. MDI - Services - Musculo Skeletal Medicine No description. http://www.medical-page.co.uk/mdi/Specialities/Muscular Skeletal Medicine/MusculoSkeletalMedicine.htm


73. MDI - Services - Non-Invasive Cardiac Imaging Cardiology - Coronary CT Angiogram - Advantages of CT vs Invasive Angiography and the total investigation only 30 minutes, with no sedation or admission required. Less costly alternative to the traditional coronary angiography examination Ability to visualise soft plaque which would otherwise be undetectable during any other cardiac investigations Better delineation of stenosis at the origin of the right and left coronary ... http://www.medical-page.co.uk/mdi/Speci ... graphy.htm


74. MDI - Services - Non-Invasive Cardiac Imaging Cardiology - Coronary CT Angiogram - Are there any risks involved ? No description. http://www.medical-page.co.uk/mdi/Speci ... volved.htm


75. MDI - Services - Non Invasive Cardiac Imaging - Cardiac MRI No description. http://www.medical-page.co.uk/mdi/Speci ... iacMRI.htm


76. MDI - Services - Non-Invasive Cardiac Imaging Cardiology - Coronary CT Angiogram No description. http://www.medical-page.co.uk/mdi/Speci ... iogram.htm


77. MDI - Services - Cardiology - CT Calcium Score No description. http://www.medical-page.co.uk/mdi/Speci ... mScore.htm


78. MDI - Services - Non-Invasive Cardiac Imaging - Echocardiography No description. http://www.medical-page.co.uk/mdi/Speci ... graphy.htm


79. MDI - Services - Cardiology - Electrocardiography No description. http://www.medical-page.co.uk/mdi/Speci ... graphy.htm


80. MDI - Services - Non-Invasive Cardiac Imaging - How do I have a Coronary CT Angiogram ? No description. http://www.medical-page.co.uk/mdi/Speci ... iogram.htm

<< Previous | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Next >>
<< Previous | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Next >>

81. MDI - Services - Non-Invasive Cardiac Imaging Cardiology - Coronary CT Angiogram - How is the examination performed? No description. http://www.medical-page.co.uk/mdi/Speci ... formed.htm


82. MDI - Services - Cardiology - Myocardial Perfusion Imaging No description. http://www.medical-page.co.uk/mdi/Speci ... maging.htm


83. MDI - Services - Non-Invasive Cardiac Imaging No description. http://www.medical-page.co.uk/mdi/Speci ... maging.htm


84. MDI - Services - ObstetricsAndGynaecology No description. http://www.medical-page.co.uk/mdi/Speci ... cology.htm


85. MDI - Services - Non-Invasive Cardiac Imaging Cardiology - Coronary CT Angiogram - Advantages of CT vs Invasive Angiography No description. http://www.medical-page.co.uk/mdi/Speci ... graphy.htm


86. MDI - Services - Osteoporosis No description. http://www.medical-page.co.uk/mdi/Speci ... orosis.htm


87. MDI - Services - PreventiveMedicine No description. http://www.medical-page.co.uk/mdi/Speci ... Preventive Medicine/PreventiveMedicine.htm


88. MDI - Brentwood Centre - Bone Densitometry No description. http://www.medical-page.co.uk/mdi/Centr ... ometry.htm


89. MDI - Brentwood Centre - Computed Tomography h; especially the brain, lung, abdominal organs and blood vessels. Brentwood Diagnostic Centre has one of the fastest, safest 64 slice CT scanners of any dedicated centre in the UK, generating images of exceptionally high resolution and detail. The advanced technology allows us to reduce the X-ray dose by up to two-thirds, without any loss in ... http://www.medical-page.co.uk/mdi/Centr ... graphy.htm


90. MDI - Brentwood Centre - Digital X-ray No description. http://www.medical-page.co.uk/mdi/Centr ... lX-ray.htm

<< Previous | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Next >>
<< Previous | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Next >>

91. MDI - Brentwood Centre - Electrocardiography No description. http://www.medical-page.co.uk/mdi/Centr ... graphy.htm


92. MDI - Brentwood - Services - Magnetic Resonance Imaging No description. http://www.medical-page.co.uk/mdi/Centr ... es/MRI.htm


93. MDI - Brentwood Centre - Nuclear medicine No description. http://www.medical-page.co.uk/mdi/Centr ... dicine.htm


94. MDI - Brentwood Centre - Ultrasound No description. http://www.medical-page.co.uk/mdi/Centr ... asound.htm


95. MDI - Sevenoaks Centre - Computed Tomography h; especially the brain, lung, abdominal organs and blood vessels. Sevenoaks Diagnostic Centre has one of the fastest, safest CT scanners of any dedicated centre in the UK, generating images of exceptionally high resolution and detail. SDC’s CT scanner can provide bone mineral analysis for osteoporosis monitoring. Also See: Section on ... http://www.medical-page.co.uk/mdi/Centr ... graphy.htm


96. MDI - Brentwood Centre - Digital X-ray No description. http://www.medical-page.co.uk/mdi/Centr ... lX-ray.htm


97. MDI - Brentwood Centre - Ultrasound No description. http://www.medical-page.co.uk/mdi/Centr ... asound.htm


98. MDI - Centres - Weybridge Diagnostic Centre - Services - Computed Tomography h; especially the brain, lung, abdominal organs and blood vessels. Weybridge Diagnostic Centre has one of the fastest, safest 64 slice CT scanners of any dedicated centre in the UK, generating images of exceptionally high resolution and detail. The advanced technology allows us to reduce the X-ray dose by up to two-thirds, without any loss in ... http://www.medical-page.co.uk/mdi/Centr ... graphy.htm


99. MDI - Centres - Weybridge Diagnostic Centre - Services - Digital X-ray No description. http://www.medical-page.co.uk/mdi/Centr ... lX-ray.htm


100. MDI - Centres - Weybridge Diagnostic Centre - Services - Electrocardiography No description. http://www.medical-page.co.uk/mdi/Centr ... graphy.htm

<< Previous | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Next >>
<< Previous | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Next >>

101. MDI - Centres - Weybridge Diagnostic Centre - Services - Magnetic Resonance Imaging No description. http://www.medical-page.co.uk/mdi/Centr ... maging.htm


102. MDI - Centres - Weybridge Diagnostic Centre - Services - Mammography No description. http://www.medical-page.co.uk/mdi/Centr ... graphy.htm


103. MDI - Centres - Weybridge Diagnostic Centre - Services - Nuclear medicine No description. http://www.medical-page.co.uk/mdi/Centr ... dicine.htm


104. MDI - Centres - Weybridge Diagnostic Centre - Services - Ultrasound No description. http://www.medical-page.co.uk/mdi/Centr ... asound.htm

<< Previous | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Next >> [/url]
Post Reply