Shawn McKenzie wrote:
> Shawn McKenzie wrote:
>> Alice Wei wrote:
>>> Hi,
>>>
>>> I have a code as in the following:
>>>
>>> <?php
>>>
>>> $file = "test.txt";
>>> $fp = fopen($file, "r");
>>>
>>> while(!feof($fp)) {
>>> $data = fgets($fp, 1024);
>>>
>>> if ((preg_match("/0/",$data)) ||
>>> (preg_match("/\"\s\"/",$data)) ||
>>> (preg_match("/\"\s\"/",$data))) {
>>> //Don't do a thing
>>> }
>>>
>>> }
>>> fclose($fp);
>>>
>>> ?>
>>>
>>>
>>> This is the input file:
>>>
>>> 1
>>> 23kd
>>> 3dkd2
>>> " "
>>> 4
>>> 5
>>> 6
>>>
>>> For the output, I get nothing running it from the command prompt, but I
>>> would like to have " " in the output,
>>> could anyone please give me some guides on what I have done wrong in my
>>> regular expression?
>>>
>>> Thanks for your help.
>>>
>>> Alice
>>>
>>>
>>>
>>>
>>>
>>>
>>> _________________________________________________________________
>>> Search from any Web page with powerful protection. Get the FREE Windows
>>> Live Toolbar Today!
>>> http://get.live.com/toolbar/overview
>> Ummm... #1 you haven't "output" anything in your code. Your code says,
>> if " " is found in $data, then "Don't do a thing".
>>
>>
>>
>
> So if your wanting to see if there is a match in the line and return the
> match (which in this example seems pointless because you know that you
> are matching ""), then something like this:
>
> if (preg_match("/0/",$data, $matches) ||
> preg_match("/\"\s\"/",$data, $matches))
> {
> print_r($matches);
> }
>
> BTW, the second and third conditions in your if appeared to be the same,
> also \s matches whitespace, spaces, tabs, returns, etc...
>
I'll wait for a reply with more information as the more I look at your
code it seems your off on a strange track. I don't know the variability
of your input data, but if you had a line 0 " " then the first
preg_match would match the 0 and not the " ". Maybe that's what you
want, dunno...
--
Thanks!
-Shawn
http://www.spidean.com
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php