|
Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com |
php-general-digest-help
lists.php.net
Date: Sun Mar 16 2008 - 06:22:27 CDT
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
php-general Digest 16 Mar 2008 11:22:27 -0000 Issue 5351
Topics (messages 271650 through 271655):
GD / Pixel Font Rendering
271650 by: nihilism machine
271651 by: nihilism machine
Re: Objects as array key names??
271652 by: Jeremy Mcentire
271653 by: Robert Cummings
271655 by: Richard Heyes
DOM - Question about \0
271654 by: dav
Administrivia:
To subscribe to the digest, e-mail:
php-general-digest-subscribe
lists.php.net
To unsubscribe from the digest, e-mail:
php-general-digest-unsubscribe
lists.php.net
To post to the list, e-mail:
php-general
lists.php.net
----------------------------------------------------------------------
attached mail follows:
I am trying to render an 8 pixel pixel font without anti aliasing to
look crisp (silkscreen) in 8pt with gd. the font is huge and ugly:
<?php
// Set the content-type
header("Content-type: image/png");
// Create the image
$im = imagecreatetruecolor(400, 30);
// Create some colors
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 29, $white);
// The text to draw
$text = 'Testing...';
// Replace path by your own font path
$font = 'silkscreen.ttf';
// Add some shadow to the text
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);
// Add the text
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);
// Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im);
imagedestroy($im);
?>
-- any ideas?
attached mail follows:
I am trying to render an 8 pixel pixel font without anti aliasing to
look crisp (silkscreen) in 8pt with gd. the font is huge and ugly:
<?php
// Set the content-type
header("Content-type: image/png");
// Create the image
$im = imagecreatetruecolor(400, 30);
// Create some colors
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 29, $white);
// The text to draw
$text = 'Testing...';
// Replace path by your own font path
$font = 'silkscreen.ttf';
// Add some shadow to the text
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);
// Add the text
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);
// Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im);
imagedestroy($im);
?>
-- any ideas?
attached mail follows:
On Mar 15, 2008, at 7:16 PM, Ray Hauge wrote:
> Jim Lucas wrote:
>> It has been brought to my attention that with Perl and Ruby, you
>> can use Objects as the value of the key within an array. The
>> examples that were shown to me make me think that this would be an
>> awesome ability to have within PHP.
>> $res = query('Select c_id, c_first_name, c_last_name FROM
>> customers');
>> $customers = array();
>> while ( $row = fetch_assoc($res) ) {
>> $customers[$row]['contact_locations'] = array();
>> $SQL = "SELECT *
>> FROM contact_locations
>> WHERE c_id={$row['c_id']}";
>> $loc_res = query($SQL);
>> while ( $loc_row = fetch_assoc($loc_res) ) {
>> $customers[$row]['contact_locations'][] = $loc_row;
>> }
>> }
>> Now, contained within one array "$customers" I have all the
>> information that would be needed for displaying any type of
>> information related to a customer or a customers location.
>>
You may have meant the while loop to iterate over $row =
fetch_object($res) ...
> // START CODE //
> $cid = null;
> $customers = array();
>
> while ( $row = fetch_assoc($res) ) {
>
> $cid = $row['cid'];
> $customers[$cid] = $row;
> $customers[$cid]['contact_locations'] = array();
>
> $SQL = "SELECT *
> FROM contact_locations
> WHERE c_id={$cid}";
>
> $loc_res = query($SQL);
>
> while ( $loc_row = fetch_assoc($loc_res) ) {
> $customers[$cid]['contact_locations'][] = $loc_row;
> }
>
> }
> // END CODE //
You could also create a data object associated with customer that
makes use of overloading functions -- or whatever you kids are calling
them these days to allow:
$customer = new Customer(78); // Load customer with ID 78.
$customer->loadLocations(); // Loads related locations.
$customer->location[n]; // Returns nth location.
$customer->location('home'); // Returns the location dubbed "home."
// You can have location loadLocations() if they're not already set.
The data object would have to make use of __get, __set, and __call.
Hereby, the locations aren't indexed by the object, but are elements
in a member array.
attached mail follows:
On Sat, 2008-03-15 at 15:02 -0700, Jim Lucas wrote:
> This question should probably be directed at the PHP Internals list, but
> I thought I would start by asking here first if anybody would even use
> this feature.
>
> It has been brought to my attention that with Perl and Ruby, you can use
> Objects as the value of the key within an array. The examples that were
> shown to me make me think that this would be an awesome ability to have
> within PHP.
>
> Here is an example of how I would use such a feature.
>
> I have a table of "customers".
> I have a table customers "contact_locations".
> This table has a reference ID back to the "customers" table.
>
> Now, in my array of information that I build I have this.
>
> $res = query('Select c_id, c_first_name, c_last_name FROM customers');
>
> $customers = array();
> while ( $row = fetch_assoc($res) ) {
> $customers[$row]['contact_locations'] = array();
> $SQL = "SELECT *
> FROM contact_locations
> WHERE c_id={$row['c_id']}";
> $loc_res = query($SQL);
> while ( $loc_row = fetch_assoc($loc_res) ) {
> $customers[$row]['contact_locations'][] = $loc_row;
> }
> }
>
>
> Now, contained within one array "$customers" I have all the information
> that would be needed for displaying any type of information related to a
> customer or a customers location.
Specifically for the example above, I'd only use 2 queries to link up
the contact locations to the customer:
<?php
$sql =
'SELECT '
.' c_id, '
.' c_first_name, '
.' c_last_name '
.'FROM '
.' customers ';
$customers = array();
if( ($res = some_db_query( $sql )) )
{
while( ($row = some_db_fetch_assoc( $res )) )
{
$row['contact_locations'] = array();
$customers[$row['c_id']] = $row;
}
}
$customer_ids = implode( ',', array_keys( $customers ) );
$sql =
'SELECT '
.' * '
.'FROM '
.' contact_locations '
.'WHERE '
.' c_id IN ( '.$customer_ids.' ) ';
if( ($res = some_db_query( $sql )) )
{
while( ($row = some_db_fetch_assoc( $res )) )
{
$customers[$row['c_id']]['contact_locations'][] = $row;
}
}
?>
Imagine 200 customers in your example... your example will hit the DB
201 times. The above hits the DB twice.
> By doing having this feature, I could build the ability to do xPath
> searches within the base array. That would be nice.
>
> Anyways, what do you all think? Worth it or not?
I don't see what added advantage you get by having an object or array()
as a key. Why can't you have the contact_locations as a key in the $row?
Cheers,
Rob.
--
http://www.interjinn.com
Application and Templating Framework for PHP
attached mail follows:
Hi,
Going off the subject alone, you might want to investigate the
__tostring() magic method that you can define to handle objects being
cast to a string. Also, there's a whole bunch of magic methods that you
can use to handle PHP operations on user defined objects:
http://uk.php.net/manual/en/language.oop5.magic.php
--
Richard Heyes
Employ me:
http://www.phpguru.org/cv
attached mail follows:
Hi,
I have question about \0 character with DOM :
<?php
$cdata = 'foo' . "\0" . 'bar';
$dom = new DOMDocument('1.0', 'utf-8');
$dom->formatOutput = true;
$container = $dom->createElement('root');
$blob = $dom->createElement('blob');
$blob->appendChild($dom->createCDATASection($cdata));
$container->appendChild($blob);
$dom->appendChild($container);
echo '<pre>' . htmlentities($dom->saveXML());
/*
Result :
<?xml version="1.0" encoding="utf-8"?>
<root>
<blob><![CDATA[foo]]></blob>
</root>
*/
?>
What to do with the character \0 ? encode this character to obtain : <![CDATA[foo&00;bar]]> ? or skip the character with str_replace("\0", '', $cdata) ?
What is the best thing to do ? i like to conserve the \0 because is a blob data
Jabber is how to transmit binary ?
Sorry for by bad english.
Thank you.
----------------------------------------------------------------------
Free pop3 email with a spam filter.
http://www.bluebottle.com/tag/5
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]