שאלה על הפונקציה show_source...

kensaggy

New member
שאלה על הפונקציה show_source...

אני מניח שכולכם מכירים את הפונקציה הזאת..ניתקלתי באיזה בעיה קטן קטנה שאני לא חושב שיש לה פתרון.. הפונקציה לא יכול לקבל משנה, רק שם מוגדר מראש.. ז"א נגיד אני רוצה לעשות דף לפי משתנה ששולחים לו הוא יציג את המקור.. יענו נגיד אני נכנס ל www.mysite.co.il/source.php?page=index.php זאת אומרת אני מבקש מהדף source שיראה לי את המקור של דף index.php עכשיו דף source.php נראה כך:
<?php $page = $_GET[´page´]; show_source(´$page´); ?>​
זה לא עובד !! למה אתם שואלים?? הסיבה לכך שהפונקציה יכולה לקבל רק משהוא מוגדר מראש בתוך סוגרים, לדוגמא:
<?php show_source("index.php"); ?>​
פשוט לא מצאתי דרך להעביר לפונקציה שם של דף בתור משתנה.. אשמח אם מישהו מכיר דרך לבצע זאת או אם באמת אין דרך, רק תגידו לי כי אני כבר מיואש.. תודה מראש
 

patael

New member
נסה את זה... האם זו כוונתך?

<? // Show source of file $link="show.php"; show_source ($link); // Get contents of buffer $raw = ob_get_contents(); // Clean and end buffering ob_end_clean(); // Split the source into lines $raw = explode ( ´<br />´, $raw ); // Insert the line number $ml = strlen ( count ( $raw ) ); for ( $i = 0; $i < count ( $raw ); $i++ ) { if ( !isset ( $noline ) ) { $gap = ( $ml - strlen ( $i ) ); $raw[$i] = "<FONT COLOR=#999999><CODE>[" . str_repeat(" ", $gap ) . $i . "]</CODE></FONT>" . $raw[$i] . "<BR />"; } else { $raw[$i] = "$raw[$i]<BR />"; } } // Convert back to a string $raw = implode ( ´´, $raw ); // Print source echo "<html>\n <body>\n$raw\n </body>\n</html>"; ?>​
שלחתי משתנה לפונקציה.... OK?
 

kensaggy

New member
כן...

תודה רבה !! אתה יכול בבקשה להסביר את הקוד בקצרה..? תודה מראש
 

DannyZ

New member
טעות קטנה בקוד המקורי

קודם כל רוב פונקציות PHP קוראות משתנים שנמצאים בין ´ ו ´ בשמם נגיד דוגמא
$thisvar = 5; print("$thisvar is this var); //5 is this var לעומת זאת print(´$thisvar is this var); //$thisvar is this var​
הקוד יכול ליהיות
if(isset($page)) { show_source($page); } else { .. }​
 
למעלה