enclose code and testfile.
    Gary Kline 
    kline at thought.org
       
    Sun Jun  7 01:22:06 UTC 2009
    
    
  
	Guys, 
	I'm encloseing a brief C program that skips over php delimiters and a
	74-byte test file.  After gdb "reminded" me that it eats the last byte, 
	I was able to complete this.  Am wondering if there is a better way.
	Obv'ly there are other way to get past "<?" and "?>"; but this was 
	already half-written.
// dephp.c
#include <stdio.h>
int
main(int argc, char *argv[])   // use: ./a.out testfile
{
	FILE *fp;
	*argv++;
	if ((fp = fopen(*argv, "r")) ==NULL)
		printf("[%s] not found\n", *argv);
	else
		foo(fp);
}
/*
 * read past any php <? and ?>
 */
int
foo (FILE *fp)
{
        int ch, ch2, ch3, ch4;
        while (( ch = getc(fp)) != EOF)
        {
                if (ch == '<' && (ch3 = getc(fp)) == '?')
                {
                        while ((ch2  = getc(fp)) != '?')
			{
				continue;
			}
			if (ch2 == '?' && (ch4 = getc(fp)) == '>')
			{
			}
                }
                else
                {
                        putchar (ch);
                }
        }
	return 0;
}
// the testfile:  
foo
bar
<?
baz
?>
blah, blah 
<
>
blah, blah
end of html src file HERE.
-- 
 Gary Kline  kline at thought.org  http://www.thought.org  Public Service Unix
        http://jottings.thought.org   http://transfinite.thought.org
       For FBSD list: http://transfinite.thought.org/slicejourney.php
    
    
More information about the freebsd-questions
mailing list