TalkPHP
 
 
Account Login
Latest Articles
» The basic usage of PHPTAL, a XML/XHTML template library for PHP
» Vulnerable methods and the areas they are commonly trusted in.
» Simple way to protect a form from bot
» The Basics On: How Session Stealing Works
» How to keep your forms from double posting data
IRC Channel
IRC Speech Bubble Join the friendly bunch on IRC...
(#TalkPHP on Freenode)

...Also available via a web interface.

See this thread for information on the TalkPHP Free Hugs Initiative™. Subject to availability.
Associates
Associates
CSS Tutorials
Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old 12-03-2008, 05:55 PM   #1 (permalink)
The Addict
 
sarmenhb's Avatar
 
Join Date: Jan 2008
Location: los angeles
Posts: 309
Thanks: 44
sarmenhb is on a distinguished road
Default parsing a page line by line

hello,

i have a page which contains about 5000 lines.

each line is in this format

vocab n. definition

how can i have php read the first word and place it into a tables column then the second word/char which is n and place that into another column and the last word into another column?
__________________
no signature set
sarmenhb is offline  
Reply With Quote
Old 12-03-2008, 09:49 PM   #2 (permalink)
The Visitor
 
Join Date: Nov 2008
Posts: 3
Thanks: 0
liveordie is on a distinguished road
Default

PHP Code:
<?php

//Read the file line by line into an array
$lines file'/path/to/file.txt' );

//Loop over the array by line
foreach( $lines as $line )
{
    
$parts = array();

    
//Explode each line into exactly 3 parts by a space.
    //Allows the definition to have multiple words separated by spaces.
    
$parts explode' '$line);

    
//Print out the three resulting parts
    
echo 'Word: ' $parts[0] . '<br />';
    echo 
'Type: ' $parts[1] . '<br />';
    echo 
'Definition: ' $parts[2] . '<br />';
}
If the second part is an abbreviation like n. v. adj. or something of that sort, you can strip the period of the second part that is returned from the explode function
liveordie is offline  
Reply With Quote
Old 12-03-2008, 11:19 PM   #3 (permalink)
Moderateur
RegEx Guru PHP Guru Top Contributor Advanced Programmer 
 
Salathe's Avatar
 
Join Date: Apr 2007
Posts: 1,393
Thanks: 5
Salathe is on a distinguished road
Default

The only trouble with using file is that you're loading the entire file into memory. Much better is to read the file line by line and do with it what you want.

Here are two approaches using this line of thought.

Plain old fopen/fgets
PHP Code:
$file fopen('dictionary.txt''r');
while ( ! 
feof($file))
{
    
$line fgets($file1024);
    list(
$word$type$definition) = explode(' 'rtrim($line), 3);

SPL File Object
PHP Code:
$file = new SplFileObject('dictionary.txt');
foreach (
$file as $line)
{
    list(
$word$type$definition) = explode(' 'rtrim($line), 3);

Salathe is offline  
Reply With Quote
Old 12-04-2008, 01:58 AM   #4 (permalink)
The Visitor
 
Join Date: Nov 2008
Posts: 3
Thanks: 0
liveordie is on a distinguished road
Default

I hadn't even considered the memory usage when I quickly typed that out.

I've never seen SplFileObject used before that is a nice class.
Any idea why it hasn't made it into the official docs yet?
liveordie is offline  
Reply With Quote
Reply



Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Similar Threads
Thread Thread Starter Forum Replies Last Post
How to create a gallery class Tanax Advanced PHP Programming 25 02-19-2013 04:25 AM
Page Load Count Wildhoney Script Giveaway 1 03-25-2008 04:48 AM
Blank Page =( obolus Absolute Beginners 7 03-09-2008 12:17 AM
uncaught exception: [Exception... "Component returned failure code: 0xc1f30001 (NS_ER Orc Javascript, AJAX, E4X 2 02-26-2008 02:12 PM
Extracting page titles and placing into dropdown box. Dorza General 6 10-29-2007 11:01 PM


All times are GMT. The time now is 04:20 PM.

 
     

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.1.0
Inactive Reminders By Icora Web Design