function zn_norm_path( $url ) {
$p = wp_parse_url( html_entity_decode( trim( $url ) ) );
if ( ! $p ) return '';
$host = isset( $p['host'] ) ? strtolower( preg_replace( '/^www\./', '', $p['host'] ) ) : '';
if ( $host && $host !== 'zahidenotes.com' ) return '';
return '/' . trim( strtolower( isset( $p['path'] ) ? $p['path'] : '' ), '/' );
}
function zn_tokens( $s ) {
$s = preg_replace( '/_\d+$/', '', strtolower( $s ) );
$parts = preg_split( '/[^a-z0-9]+/', $s, -1, PREG_SPLIT_NO_EMPTY );
$stop = array( 'the', 'of', 'to', 'for', 'and', 'a', 'an', 'in', 'on', 'pdf', 'download', 'free', 'by', 'with', 'is', 'your', 'at', 'all' );
$out = array();
foreach ( $parts as $w ) {
if ( in_array( $w, $stop, true ) ) continue;
if ( preg_match( '/^20[1-3]\d$/', $w ) ) continue;
if ( strlen( $w ) > 3 && substr( $w, -1 ) === 's' ) $w = substr( $w, 0, -1 );
$out[ $w ] = true;
}
return array_keys( $out );
}
function zn_score( $a, $b ) {
if ( ! $a || ! $b ) return 0;
$i = count( array_intersect( $a, $b ) );
if ( ! $i ) return 0;
$u = count( array_unique( array_merge( $a, $b ) ) );
return 0.7 * ( $i / count( $a ) ) + 0.3 * ( $i / $u );
}
/* 404 par: jo purana URL approve ho chuka hai usay naye page par 301 */
add_action( 'template_redirect', function () {
if ( ! is_404() ) return;
$path = '/' . trim( strtolower( (string) parse_url( $_SERVER['REQUEST_URI'], PHP_URL_PATH ) ), '/' );
$map = get_option( 'zn_map', array() );
if ( isset( $map[ $path ] ) && strpos( $map[ $path ], 'id:' ) === 0 ) {
$l = get_permalink( (int) substr( $map[ $path ], 3 ) );
if ( $l ) { wp_redirect( $l, 301 ); exit; }
}
}, 0 );
add_action( 'admin_menu', function () {
add_management_page( 'ZN Link Mapper', 'ZN Link Mapper', 'manage_options', 'zn-mapper', 'zn_mapper_page' );
} );
function zn_mapper_form( $act, $offset, $label, $auto = false, $extra = '' ) {
echo '
';
if ( $auto ) echo '';
}
function zn_mapper_page() {
if ( ! current_user_can( 'manage_options' ) ) return;
echo 'ZN Link Mapper ';
if ( ! function_exists( 'zn_link_is_broken' ) || ! function_exists( 'zn_find_post_id' ) ) {
echo '
Pehle ZN Fixer aur ZN Link Cleaner snippets active hone chahiye.
';
return;
}
global $wpdb;
$act = isset( $_POST['act'] ) ? sanitize_key( $_POST['act'] ) : '';
$offset = isset( $_POST['offset'] ) ? absint( $_POST['offset'] ) : 0;
if ( $act ) check_admin_referer( 'zn_map' );
$batch = 50;
$busy = false;
/* ---- 1) SCAN ---- */
if ( $act === 'scan' ) {
$scan = $offset === 0 ? array() : get_option( 'zn_scan', array() );
$ids = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} WHERE post_type IN ('post','page') AND post_status IN ('publish','draft','private') ORDER BY ID ASC LIMIT %d OFFSET %d", $batch, $offset ) );
foreach ( $ids as $id ) {
$c = $wpdb->get_var( $wpdb->prepare( "SELECT post_content FROM {$wpdb->posts} WHERE ID=%d", $id ) );
if ( ! preg_match_all( '#]*?href=(["\'])(.*?)\1#is', $c, $mm ) ) continue;
foreach ( $mm[2] as $u ) {
if ( ! zn_link_is_broken( $u ) ) continue;
$path = zn_norm_path( $u );
if ( ! $path || $path === '/' ) continue;
$scan[ $path ] = isset( $scan[ $path ] ) ? $scan[ $path ] + 1 : 1;
}
}
update_option( 'zn_scan', $scan, false );
$offset += count( $ids );
if ( count( $ids ) === $batch ) {
$busy = true;
echo 'Scan ho raha hai... ' . (int) $offset . ' items check hue. Tab band na karein.
';
zn_mapper_form( 'scan', $offset, 'Agla batch', true );
} else {
echo 'Scan mukammal. ' . count( $scan ) . ' alag broken URLs mile. Neeche review karein.
';
}
}
/* ---- 2) SAVE ---- */
if ( $act === 'save' ) {
$map = get_option( 'zn_map', array() );
$paths = isset( $_POST['p'] ) ? (array) wp_unslash( $_POST['p'] ) : array();
$chs = isset( $_POST['m'] ) ? (array) wp_unslash( $_POST['m'] ) : array();
foreach ( $paths as $h => $path ) {
$path = sanitize_text_field( $path );
$v = isset( $chs[ $h ] ) ? sanitize_text_field( $chs[ $h ] ) : 'skip';
if ( $v === 'remove' || preg_match( '/^id:\d+$/', $v ) ) $map[ $path ] = $v; else unset( $map[ $path ] );
}
update_option( 'zn_map', $map, false );
echo 'Choices save ho gaye. Jo URL "naye page" par set hain unka purana link Google/visitors ke liye bhi ab naye page par redirect hoga.
';
}
/* ---- 3) APPLY ---- */
if ( $act === 'apply' ) {
$dry = ! empty( $_POST['dry'] );
$map = get_option( 'zn_map', array() );
$ids = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} WHERE post_type IN ('post','page') AND post_status IN ('publish','draft','private') ORDER BY ID ASC LIMIT %d OFFSET %d", $batch, $offset ) );
$re = 0; $rm = 0; $posts = 0;
foreach ( $ids as $id ) {
$old = $wpdb->get_var( $wpdb->prepare( "SELECT post_content FROM {$wpdb->posts} WHERE ID=%d", $id ) );
$new = preg_replace_callback(
'# ]*?href=(["\'])(.*?)\1[^>]*>(.*?) #is',
function ( $m ) use ( $map, &$re, &$rm ) {
$path = zn_norm_path( $m[2] );
if ( ! $path || ! isset( $map[ $path ] ) ) return $m[0];
$ch = $map[ $path ];
if ( $ch === 'remove' ) { $rm++; return $m[3]; }
if ( strpos( $ch, 'id:' ) === 0 ) {
$link = get_permalink( (int) substr( $ch, 3 ) );
if ( ! $link ) return $m[0];
$frag = ( ( $h = strpos( $m[2], '#' ) ) !== false ) ? substr( $m[2], $h ) : '';
$pos = strpos( $m[0], $m[2] );
$re++;
return substr_replace( $m[0], $link . $frag, $pos, strlen( $m[2] ) );
}
return $m[0];
},
$old
);
if ( $new === null || $new === $old ) continue;
$posts++;
if ( ! $dry ) {
if ( ! get_post_meta( $id, '_zn_backup_map', true ) ) add_post_meta( $id, '_zn_backup_map', wp_slash( $old ), true );
$wpdb->update( $wpdb->posts, array( 'post_content' => $new ), array( 'ID' => $id ) );
clean_post_cache( $id );
}
}
$offset += count( $ids );
echo '' . ( $dry ? 'DRY RUN: ' : '' ) . (int) $offset . ' items check hue. Is batch mein ' . $posts . ' posts, ' . $re . ' links naye page par, ' . $rm . ' links hata diye' . ( $dry ? ' (kuch save nahi hua)' : '' ) . '.
';
if ( count( $ids ) === $batch ) {
$busy = true;
zn_mapper_form( 'apply', $offset, 'Agla batch', true, $dry ? ' ' : '' );
} else {
echo '';
}
}
if ( $busy ) { echo ''; return; }
/* ---- Buttons ---- */
echo 'Step 1:
';
zn_mapper_form( 'scan', 0, 'Scan karo (broken links dhoondo)' );
$scan = get_option( 'zn_scan', array() );
if ( ! $scan ) { echo ''; return; }
arsort( $scan );
$map = get_option( 'zn_map', array() );
/* ---- Review ---- */
$pool = array();
foreach ( $wpdb->get_results( "SELECT ID, post_title, post_name, post_type FROM {$wpdb->posts} WHERE post_status='publish' AND post_type IN ('post','page')" ) as $r ) {
$pool[] = array( 'id' => (int) $r->ID, 'title' => $r->post_title, 'type' => $r->post_type, 'tok' => zn_tokens( $r->post_title . ' ' . $r->post_name ) );
}
echo 'Step 2: Review Har purane URL ke saamne sahi page chunein. "Abhi chhod do" ka matlab link jaisa hai waisa rahega. Jo URL kisi page se match nahi karte unhe "Link hata do" par rakhein.
';
echo '';
echo 'Step 3: Articles mein lagao Pehle Dry run, phir asli.
';
zn_mapper_form( 'apply', 0, 'Dry run (sirf check)', false, ' ' );
zn_mapper_form( 'apply', 0, 'Asli apply karo' );
echo '';
}
Skip to content
This health and physical education book is both for 9th class and 10th class. The students of 9th class and 10th class can download the book and read its soft copy in pdf.
Zahid Notes has offered the book in pdf here by linking to the original pdf file offered by PTB (New names is Punjab Curriculum and Textbook board, PCTB) Lahore.
9th and 10th class physical education book Urdu Medium
This pdf book is in Urdu medium. So if you are looking for an English medium book of health and physical education for 9th or 10th class by Punjab Board, then you will have to wait for some time till the board publishes the English version of the book.
As you know, we cannot offer here the books by our own, we can just give you the link to download the original book as published by Punjab Curriculum and Textbook board on its official website.
9th and 10th class health and physical education book pdf download
Please see that the image is given as a picture to represent the book. The original book cover as in PDF file may differ from this one.
Now you can download the book by clicking the download link below. The pdf download link is given below the book cover or the image:
Zahid Notes, is a website that offers free pdf notes, books, guess papers, textbooks, guide books, paper patterns, past papers, and other study materials for free.
You can search for more notes and other relevant things for 9th class. Please note that you may find some items missing or download link not active, it clearly means that that item is still not uploaded on the web but it will soon be published.
Here are some other books and notes for 9th and 10th class: