PHP can't read files containing PHP code as text files

大城市里の小女人 提交于 2019-12-22 09:49:00

问题


I've stumbled upon the following pecularity:

$handle = fopen(realpath("../folder/files.php"), "r");

can't read a file, but as soon as I remove php tags from the file, it becomes readable and my scripts prints non-empty file content on the page. Also, file.php is never ever executed, so I wonder why it is the problem.

I guess somehow Apache or PHP doesn't let read files containing php tags PHP as just text.

How can I enable it for my particular file (course doing it globally would be unsecure)?

Using PHP 5.2.x and Apache 2.0


回答1:


I got it. I was using Google chrome to debug the page, and I realized that when viewing the source, Chrome hides PHP tags for some reason. I ran the same test on Firefox, and viewing the source proved that everything was okay.

Here are the test details:

Code:

$fh = fopen("test.php","r");
while ($line = fgets($fh)){
echo $line;
}

File to be read (test.php):

testing <?php testing2 ?> testing3

Rendering (on both Chrome and firefox):

testing  testing3

View source (using firefox):

testing <?php testing2 ?> testing3

View source (using Chrome - source of my mistake):

testing  testing3



回答2:


Are you sure you're interpreting the output correctly? If you print the file contents directly to your page output, a browser won't display text inside angle brackets because it thinks it's a tag. Serve your content as text/plain, or use your browser's "view source" command to make sure you're looking at what's really there, and not just what the browser chose to display.




回答3:


Hmm file_get_contents() is working for me. Is it issue only for fopen?

Edit: what error do you get exactly?




回答4:


Wadih M. solved the issue. PHP tags hides the whole tag-enclosed php source output in the browser, but View Source shows them. Thanks!




回答5:


I am using htmlspecialchars($line);

It solved the problem.




回答6:


rename the file read it get your data change them rerename your file :)



来源:https://stackoverflow.com/questions/654688/php-cant-read-files-containing-php-code-as-text-files

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!