pass php page to page callback with hook_menu
The value to 'page callback' can only be a function name.

If you must use 'a whole PHP/HTML page' then work around by using the hook_theme.

&lt;?php
function my_example_menu() {
  $items['my/example'] = array(
    'title' =&gt; 'My title',
    'page callback' =&gt; 'my_example_page', /* callback function */
'access arguments' =&gt; array('access content'),
    'type' =&gt; MENU_NORMAL_ITEM,
);

return $items;
}

/**
 * Implements hook_theme
 *
 */
function my_example_theme($existing, $type, $theme, $path) {
  return array(
    'the_html_page' =&gt; array(
    'template' =&gt; 'the-html-page', /* create file with this name + .tpl.php */
  ),
);
}

function my_example_page(){
  return theme('the_html_page');
}
?&gt;


The value of 'template' in hook_theme() is the name of your file. Create the template file with .tpl.php extension and place it in the same directory as your module. You can put any html that you need in the file.