Jump to content

vanderlay

Members
  • Posts

    23
  • Joined

  • Last visited

    Never

Profile Information

  • Gender
    Not Telling

vanderlay's Achievements

Member

Member (2/5)

0

Reputation

  1. please advise which part is not relevant? :-\ and i will know for next time Thanks Art
  2. Hi All, I have a good problem for you. I have taken the code below and added a basic foreach loop so each pass should create a new image based on the text in the array. The image is the saved with the array text as the file name. ie $a = array('qwerty','asdfg','zxcvbn'); The problem is the first pic is generated correctly and saved with the correct file name ie [0] = qwerty.png => correct image "qwerty" the rest of the images are saved using the correct array name but the image is from the first array position ie sould be [1] asdfg.png => image "asdfg" however it does [1] asdfg.png => image "qwerty" any ideas? Thanks Art <?php $a = array('qwerty','asdfg','zxcvbn'); foreach($a as $k => $v) { $_SESSION['c_shtcode'] = $v; /* # # QRcode image PHP scripts version 0.50g (C)2000-2005,Y.Swetake # # # This program outputs a png image of "QRcode model 2". # You cannot use a several functions of QRcode in this version. # See README.txt . # # This version supports QRcode model2 version 1-40. # # # This program requires PHP4.1 and gd 1.6 or higher. # # You must set $path & $image_path the path to QRcode data file. # # # [useage] # qr_img.php?d=[data]&e=[(L,M,Q,H)]&s=[int]&v=[(1-40)] # (&m=[(1-16)]&n=[(2-16)](&p=[(0-255)],&o=[data])) # # d= data URL encoded data. # e= ECC level L or M or Q or H (default M) # s= module size (dafault PNG:4 JPEG: # v= version 1-40 or Auto select if you do not set. # t= image type J:jpeg image , other: PNG image # # structured append m of n (experimental) # n= structure append n (2-16) # m= structure append m (1-16) # p= parity # o= original data (URL encoded data) for calculating parity # # # # THIS SOFTWARE IS PROVIDED BY Y.Swetake ``AS IS'' AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. # IN NO EVENT SHALL Y.Swetake OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, # INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE # USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # */ /* ------ setting area ------ */ $path= $_SERVER["DOCUMENT_ROOT"].'/barcode/data/'; /* You must set path to data files. */ $image_path= $_SERVER["DOCUMENT_ROOT"].'/barcode/image/'; /* You must set path to QRcode frame images. */ $svebc = $_SERVER["DOCUMENT_ROOT"].'/barcode/bcpng/'; $version_ul=40; /* upper limit for version */ /* ------ setting area end ------ */ //$qrcode_data_string=@$_GET["d"]; $qrcode_data_string=$_SESSION['c_shtcode']; //from printdo echo "<br>aa:$qrcode_data_string"; //$qrcode_error_correct=@$_GET["e"]; $qrcode_error_correct="H"; //$qrcode_module_size=@$_GET["s"]; $qrcode_module_size=2; //$qrcode_version=@$_GET["v"]; //$qrcode_image_type=@$_GET["t"]; //$qrcode_image_type="j"; //$qrcode_structureappend_n=@$_GET["n"]; //$qrcode_structureappend_m=@$_GET["m"]; //$qrcode_structureappend_parity=@$_GET["p"]; //$qrcode_structureappend_originaldata=@$_GET["o"]; $qrcode_structureappend_originaldata=$_SESSION['c_shtcode']; if (($qrcode_image_type=="J")||($qrcode_image_type=="j")){ $qrcode_image_type="jpeg"; }else { $qrcode_image_type="png"; } if ($qrcode_module_size>0) { } else { if ($qrcode_image_type=="jpeg"){ $qrcode_module_size=8; } else { $qrcode_module_size=4; } } $qrcode_data_string=rawurldecode($qrcode_data_string); $data_length=strlen($qrcode_data_string); if ($data_length<=0) { trigger_error("QRcode : Data do not exist.",E_USER_ERROR); exit; } $data_counter=0; if ($qrcode_structureappend_n>1 && $qrcode_structureappend_n<=16 && $qrcode_structureappend_m>0 && $qrcode_structureqppend_m<=16){ $data_value[0]=3; $data_bits[0]=4; $data_value[1]=$qrcode_structureappend_m-1; $data_bits[1]=4; $data_value[2]=$qrcode_structureappend_n-1; $data_bits[2]=4; $originaldata_length=strlen($qrcode_structureappend_originaldata); if ($originaldata_length>1){ $qrcode_structureappend_parity=0; $i=0; while ($i<$originaldata_length){ $qrcode_structureappend_parity=($qrcode_structureappend_parity ^ ord(substr($qrcode_structureappend_originaldata,$i,1))); $i++; } } $data_value[3]=$qrcode_structureappend_parity; $data_bits[3]=8; $data_counter=4; } $data_bits[$data_counter]=4; /* --- determine encode mode */ if (ereg("[^0-9]",$qrcode_data_string)){ if (ereg("[^0-9A-Z \$\*\%\+\-\.\/\:]",$qrcode_data_string)) { /* --- 8bit byte mode */ $codeword_num_plus=array(0,0,0,0,0,0,0,0,0,0, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,; $data_value[$data_counter]=4; $data_counter++; $data_value[$data_counter]=$data_length; $data_bits[$data_counter]=8; /* #version 1-9 */ $codeword_num_counter_value=$data_counter; $data_counter++; $i=0; while ($i<$data_length){ $data_value[$data_counter]=ord(substr($qrcode_data_string,$i,1)); $data_bits[$data_counter]=8; $data_counter++; $i++; } } else { /* ---- alphanumeric mode */ $codeword_num_plus=array(0,0,0,0,0,0,0,0,0,0, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 4,4,4,4,4,4,4,4,4,4,4,4,4,4); $data_value[$data_counter]=2; $data_counter++; $data_value[$data_counter]=$data_length; $data_bits[$data_counter]=9; /* #version 1-9 */ $codeword_num_counter_value=$data_counter; $alphanumeric_character_hash=array("0"=>0,"1"=>1,"2"=>2,"3"=>3,"4"=>4, "5"=>5,"6"=>6,"7"=>7,"8"=>8,"9"=>9,"A"=>10,"B"=>11,"C"=>12,"D"=>13,"E"=>14, "F"=>15,"G"=>16,"H"=>17,"I"=>18,"J"=>19,"K"=>20,"L"=>21,"M"=>22,"N"=>23, "O"=>24,"P"=>25,"Q"=>26,"R"=>27,"S"=>28,"T"=>29,"U"=>30,"V"=>31, "W"=>32,"X"=>33,"Y"=>34,"Z"=>35," "=>36,"$"=>37,"%"=>38,"*"=>39, "+"=>40,"-"=>41,"."=>42,"/"=>43,":"=>44); $i=0; $data_counter++; while ($i<$data_length){ if (($i %2)==0){ $data_value[$data_counter]=$alphanumeric_character_hash[substr($qrcode_data_string,$i,1)]; $data_bits[$data_counter]=6; } else { $data_value[$data_counter]=$data_value[$data_counter]*45+$alphanumeric_character_hash[substr($qrcode_data_string,$i,1)]; $data_bits[$data_counter]=11; $data_counter++; } $i++; } } } else { /* ---- numeric mode */ $codeword_num_plus=array(0,0,0,0,0,0,0,0,0,0, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 4,4,4,4,4,4,4,4,4,4,4,4,4,4); $data_value[$data_counter]=1; $data_counter++; $data_value[$data_counter]=$data_length; $data_bits[$data_counter]=10; /* #version 1-9 */ $codeword_num_counter_value=$data_counter; $i=0; $data_counter++; while ($i<$data_length){ if (($i % 3)==0){ $data_value[$data_counter]=substr($qrcode_data_string,$i,1); $data_bits[$data_counter]=4; } else { $data_value[$data_counter]=$data_value[$data_counter]*10+substr($qrcode_data_string,$i,1); if (($i % 3)==1){ $data_bits[$data_counter]=7; } else { $data_bits[$data_counter]=10; $data_counter++; } } $i++; } } if (@$data_bits[$data_counter]>0) { $data_counter++; } $i=0; $total_data_bits=0; while($i<$data_counter){ $total_data_bits+=$data_bits[$i]; $i++; } $ecc_character_hash=array("L"=>"1", "l"=>"1", "M"=>"0", "m"=>"0", "Q"=>"3", "q"=>"3", "H"=>"2", "h"=>"2"); $ec=@$ecc_character_hash[$qrcode_error_correct]; if (!$ec){$ec=0;} $max_data_bits_array=array( 0,128,224,352,512,688,864,992,1232,1456,1728, 2032,2320,2672,2920,3320,3624,4056,4504,5016,5352, 5712,6256,6880,7312,8000,8496,9024,9544,10136,10984, 11640,12328,13048,13800,14496,15312,15936,16816,17728,18672, 152,272,440,640,864,1088,1248,1552,1856,2192, 2592,2960,3424,3688,4184,4712,5176,5768,6360,6888, 7456,8048,8752,9392,10208,10960,11744,12248,13048,13880, 14744,15640,16568,17528,18448,19472,20528,21616,22496,23648, 72,128,208,288,368,480,528,688,800,976, 1120,1264,1440,1576,1784,2024,2264,2504,2728,3080, 3248,3536,3712,4112,4304,4768,5024,5288,5608,5960, 6344,6760,7208,7688,7888,8432,8768,9136,9776,10208, 104,176,272,384,496,608,704,880,1056,1232, 1440,1648,1952,2088,2360,2600,2936,3176,3560,3880, 4096,4544,4912,5312,5744,6032,6464,6968,7288,7880, 8264,8920,9368,9848,10288,10832,11408,12016,12656,13328 ); if (!is_numeric($qrcode_version)){ $qrcode_version=0; } if (!$qrcode_version){ /* #--- auto version select */ $i=1+40*$ec; $j=$i+39; $qrcode_version=1; while ($i<=$j){ if (($max_data_bits_array[$i])>=$total_data_bits+$codeword_num_plus[$qrcode_version] ){ $max_data_bits=$max_data_bits_array[$i]; break; } $i++; $qrcode_version++; } } else { $max_data_bits=$max_data_bits_array[$qrcode_version+40*$ec]; } if ($qrcode_version>$version_ul){ trigger_error("QRcode : too large version.",E_USER_ERROR); } $total_data_bits+=$codeword_num_plus[$qrcode_version]; $data_bits[$codeword_num_counter_value]+=$codeword_num_plus[$qrcode_version]; $max_codewords_array=array(0,26,44,70,100,134,172,196,242, 292,346,404,466,532,581,655,733,815,901,991,1085,1156, 1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465, 2611,2761,2876,3034,3196,3362,3532,3706); $max_codewords=$max_codewords_array[$qrcode_version]; $max_modules_1side=17+($qrcode_version <<2); $matrix_remain_bit=array(0,0,7,7,7,7,7,0,0,0,0,0,0,0,3,3,3,3,3,3,3, 4,4,4,4,4,4,4,3,3,3,3,3,3,3,0,0,0,0,0,0); /* ---- read version ECC data file */ $byte_num=$matrix_remain_bit[$qrcode_version]+($max_codewords << 3); $filename=$path."/qrv".$qrcode_version."_".$ec.".dat"; $fp1 = fopen ($filename, "rb"); $matx=fread($fp1,$byte_num); $maty=fread($fp1,$byte_num); $masks=fread($fp1,$byte_num); $fi_x=fread($fp1,15); $fi_y=fread($fp1,15); $rs_ecc_codewords=ord(fread($fp1,1)); $rso=fread($fp1,128); fclose($fp1); $matrix_x_array=unpack("C*",$matx); $matrix_y_array=unpack("C*",$maty); $mask_array=unpack("C*",$masks); $rs_block_order=unpack("C*",$rso); $format_information_x2=unpack("C*",$fi_x); $format_information_y2=unpack("C*",$fi_y); $format_information_x1=array(0,1,2,3,4,5,7,8,8,8,8,8,8,8,; $format_information_y1=array(8,8,8,8,8,8,8,8,7,5,4,3,2,1,0); $max_data_codewords=($max_data_bits >>3); $filename = $path."/rsc".$rs_ecc_codewords.".dat"; $fp0 = fopen ($filename, "rb"); $i=0; while ($i<256) { $rs_cal_table_array[$i]=fread ($fp0,$rs_ecc_codewords); $i++; } fclose ($fp0); /* --- set terminator */ if ($total_data_bits<=$max_data_bits-4){ $data_value[$data_counter]=0; $data_bits[$data_counter]=4; } else { if ($total_data_bits<$max_data_bits){ $data_value[$data_counter]=0; $data_bits[$data_counter]=$max_data_bits-$total_data_bits; } else { if ($total_data_bits>$max_data_bits){ trigger_error("QRcode : Overflow error",E_USER_ERROR); exit; } } } /* ----divide data by 8bit */ $i=0; $codewords_counter=0; $codewords[0]=0; $remaining_bits=8; while ($i<=$data_counter) { $buffer=@$data_value[$i]; $buffer_bits=@$data_bits[$i]; $flag=1; while ($flag) { if ($remaining_bits>$buffer_bits){ $codewords[$codewords_counter]=((@$codewords[$codewords_counter]<<$buffer_bits) | $buffer); $remaining_bits-=$buffer_bits; $flag=0; } else { $buffer_bits-=$remaining_bits; $codewords[$codewords_counter]=(($codewords[$codewords_counter] << $remaining_bits) | ($buffer >> $buffer_bits)); if ($buffer_bits==0) { $flag=0; } else { $buffer= ($buffer & ((1 << $buffer_bits)-1) ); $flag=1; } $codewords_counter++; if ($codewords_counter<$max_data_codewords-1){ $codewords[$codewords_counter]=0; } $remaining_bits=8; } } $i++; } if ($remaining_bits!= { $codewords[$codewords_counter]=$codewords[$codewords_counter] << $remaining_bits; } else { $codewords_counter--; } /* ---- set padding character */ if ($codewords_counter<$max_data_codewords-1){ $flag=1; while ($codewords_counter<$max_data_codewords-1){ $codewords_counter++; if ($flag==1) { $codewords[$codewords_counter]=236; } else { $codewords[$codewords_counter]=17; } $flag=$flag*(-1); } } /* ---- RS-ECC prepare */ $i=0; $j=0; $rs_block_number=0; $rs_temp[0]=""; while($i<$max_data_codewords){ $rs_temp[$rs_block_number].=chr($codewords[$i]); $j++; if ($j>=$rs_block_order[$rs_block_number+1]-$rs_ecc_codewords){ $j=0; $rs_block_number++; $rs_temp[$rs_block_number]=""; } $i++; } /* # # RS-ECC main # */ $rs_block_number=0; $rs_block_order_num=count($rs_block_order); while ($rs_block_number<$rs_block_order_num){ $rs_codewords=$rs_block_order[$rs_block_number+1]; $rs_data_codewords=$rs_codewords-$rs_ecc_codewords; $rstemp=$rs_temp[$rs_block_number].str_repeat(chr(0),$rs_ecc_codewords); $padding_data=str_repeat(chr(0),$rs_data_codewords); $j=$rs_data_codewords; while($j>0){ $first=ord(substr($rstemp,0,1)); if ($first){ $left_chr=substr($rstemp,1); $cal=$rs_cal_table_array[$first].$padding_data; $rstemp=$left_chr ^ $cal; } else { $rstemp=substr($rstemp,1); } $j--; } $codewords=array_merge($codewords,unpack("C*",$rstemp)); $rs_block_number++; } /* ---- flash matrix */ $i=0; while ($i<$max_modules_1side){ $j=0; while ($j<$max_modules_1side){ $matrix_content[$j][$i]=0; $j++; } $i++; } /* --- attach data */ $i=0; while ($i<$max_codewords){ $codeword_i=$codewords[$i]; $j=8; while ($j>=1){ $codeword_bits_number=($i << 3) + $j; $matrix_content[ $matrix_x_array[$codeword_bits_number] ][ $matrix_y_array[$codeword_bits_number] ]=((255*($codeword_i & 1)) ^ $mask_array[$codeword_bits_number] ); $codeword_i= $codeword_i >> 1; $j--; } $i++; } $matrix_remain=$matrix_remain_bit[$qrcode_version]; while ($matrix_remain){ $remain_bit_temp = $matrix_remain + ( $max_codewords <<3); $matrix_content[ $matrix_x_array[$remain_bit_temp] ][ $matrix_y_array[$remain_bit_temp] ] = ( 255 ^ $mask_array[$remain_bit_temp] ); $matrix_remain--; } #--- mask select $min_demerit_score=0; $hor_master=""; $ver_master=""; $k=0; while($k<$max_modules_1side){ $l=0; while($l<$max_modules_1side){ $hor_master=$hor_master.chr($matrix_content[$l][$k]); $ver_master=$ver_master.chr($matrix_content[$k][$l]); $l++; } $k++; } $i=0; $all_matrix=$max_modules_1side * $max_modules_1side; while ($i<{ $demerit_n1=0; $ptn_temp=array(); $bit= 1<< $i; $bit_r=(~$bit)&255; $bit_mask=str_repeat(chr($bit),$all_matrix); $hor = $hor_master & $bit_mask; $ver = $ver_master & $bit_mask; $ver_shift1=$ver.str_repeat(chr(170),$max_modules_1side); $ver_shift2=str_repeat(chr(170),$max_modules_1side).$ver; $ver_shift1_0=$ver.str_repeat(chr(0),$max_modules_1side); $ver_shift2_0=str_repeat(chr(0),$max_modules_1side).$ver; $ver_or=chunk_split(~($ver_shift1 | $ver_shift2),$max_modules_1side,chr(170)); $ver_and=chunk_split(~($ver_shift1_0 & $ver_shift2_0),$max_modules_1side,chr(170)); $hor=chunk_split(~$hor,$max_modules_1side,chr(170)); $ver=chunk_split(~$ver,$max_modules_1side,chr(170)); $hor=$hor.chr(170).$ver; $n1_search="/".str_repeat(chr(255),5)."+|".str_repeat(chr($bit_r),5)."+/"; $n3_search=chr($bit_r).chr(255).chr($bit_r).chr($bit_r).chr($bit_r).chr(255).chr($bit_r); $demerit_n3=substr_count($hor,$n3_search)*40; $demerit_n4=floor(abs(( (100* (substr_count($ver,chr($bit_r))/($byte_num)) )-50)/5))*10; $n2_search1="/".chr($bit_r).chr($bit_r)."+/"; $n2_search2="/".chr(255).chr(255)."+/"; $demerit_n2=0; preg_match_all($n2_search1,$ver_and,$ptn_temp); foreach($ptn_temp[0] as $str_temp){ $demerit_n2+=(strlen($str_temp)-1); } $ptn_temp=array(); preg_match_all($n2_search2,$ver_or,$ptn_temp); foreach($ptn_temp[0] as $str_temp){ $demerit_n2+=(strlen($str_temp)-1); } $demerit_n2*=3; $ptn_temp=array(); preg_match_all($n1_search,$hor,$ptn_temp); foreach($ptn_temp[0] as $str_temp){ $demerit_n1+=(strlen($str_temp)-2); } $demerit_score=$demerit_n1+$demerit_n2+$demerit_n3+$demerit_n4; if ($demerit_score<=$min_demerit_score || $i==0){ $mask_number=$i; $min_demerit_score=$demerit_score; } $i++; } $mask_content=1 << $mask_number; # --- format information $format_information_value=(($ec << 3) | $mask_number); $format_information_array=array("101010000010010","101000100100101", "101111001111100","101101101001011","100010111111001","100000011001110", "100111110010111","100101010100000","111011111000100","111001011110011", "111110110101010","111100010011101","110011000101111","110001100011000", "110110001000001","110100101110110","001011010001001","001001110111110", "001110011100111","001100111010000","000011101100010","000001001010101", "000110100001100","000100000111011","011010101011111","011000001101000", "011111100110001","011101000000110","010010010110100","010000110000011", "010111011011010","010101111101101"); $i=0; while ($i<15){ $content=substr($format_information_array[$format_information_value],$i,1); $matrix_content[$format_information_x1[$i]][$format_information_y1[$i]]=$content * 255; $matrix_content[$format_information_x2[$i+1]][$format_information_y2[$i+1]]=$content * 255; $i++; } $mib=$max_modules_1side+8; $qrcode_image_size=$mib*$qrcode_module_size; if ($qrcode_image_size>1480){ trigger_error("QRcode : Too large image size",E_USER_ERROR); } $output_image =ImageCreate($qrcode_image_size,$qrcode_image_size); $image_path=$image_path."/qrv".$qrcode_version.".png"; $base_image=ImageCreateFromPNG($image_path); $col[1]=ImageColorAllocate($base_image,0,0,0); $col[0]=ImageColorAllocate($base_image,255,255,255); $i=4; $mxe=4+$max_modules_1side; $ii=0; while ($i<$mxe){ $j=4; $jj=0; while ($j<$mxe){ if ($matrix_content[$ii][$jj] & $mask_content){ ImageSetPixel($base_image,$i,$j,$col[1]); } $j++; $jj++; } $i++; $ii++; } /* #--- output image # */ $svebc2 = $svebc.$qrcode_data_string.".png"; //Header("Content-type: image/".$qrcode_image_type); ImageCopyResized($output_image,$base_image,0,0,0,0,$qrcode_image_size,$qrcode_image_size,$mib,$mib); if ($qrcode_image_type == "jpeg"){ ImageJpeg($output_image); } else { ImagePng($output_image,$svebc2,0,NULL); } } ?>
  3. Hi All, I have been racking my brain and keyboard trying to find a tool that can give me a visual flow chart of an inherited site coded with PHP/mysql and JS. I guess it would be similar to the MAP feature in dreamweaver but would work with includes etc. I need it to be based on source code not final output so I can trace all the includes and find what page is calling them. any ideas would be great. Thax Art
  4. to john010117, please check your facts before having a go at some body...i did wait at least an hour before bumping A.M. abbreviation ante meridiem Meaning: being before noon P.M. abbreviation post meridiem Meaning: being after noon
  5. thx Corbin, good answer explains things for me very well. Art
  6. ** BUMP ** anybody? echo!!!!! or is this a silly question?
  7. Hi All, I have been using php for some time now and have got the hang of fairly high level processing including dynamic images from mysql output that leads me to the point of needing to better understand the processing /logic order of the php engine so i can increase the speed of my scripts. so the Q i have is how is the following rendered by php, template.php require -> mysqldata.php to get info from db require -> imagegd.php takes mysql data and var from template.php and resizes image then outputs to browser(no save) Q1. a)does template.php have to wait for mysqldata.php to be fully rendered/computed before moving on to imagegd.php or b)does imagegd.php get called immediately and has to wait for mysqldata.php to supply the info needed (i presume the (a) is correct) Q2. once imagedgd.php has been called and an image generated is that image pushed to the browser or is the template.php rendered as html sent to browser and the browser then requests the imagegd.php script and the image is generated. Q3. is there a good way ( i have tried ob_start("ob_gzhandler"); ) to buffer the page and wait for all images but it only seems to work on text/layout rather than graphics/fla etc. thx Art
  8. bingo - thx Barand, works a charm..... can you also explain the difference between using '$var' and \"".$var."\" in an echo statement as this looks lie it could save me a few keystrokes every time I have to use it. Thx again Art
  9. Hello all and Happy Festivus! for each of you that can help me I will make a donation in your name to the HUMAN FUND, money for people. let us celebrate Festivus, a true holiday for the rest of us. but before we move on to the The Airing of Grievances, 'cause the deity of your choice knows "I got a lot of problems with you people!", can you take a look at this problem and help me out. I am am trying to generate a SELECT box and group the items using echo "optgroup". In my table I have several items Brand  Model  Make A        i          1 A        ii          2 B        ii          3 C        i          4 I would like to "SELECT DISTINCT Model FROM table" then group them by brand so the result would be, BRAND A   Model i   Model ii BRAND B   model ii Brand  C   model i the first part of the select statement works fine and i rtn the values using, [code] while ($p= mysql_fetch_array($query))       {       echo "<option value=\"".$p[model]."\">".$p[model]."</option>";       } [/code]   but how do i get the brand value and rtn it for the optgroup? thx Art
  10. BUMP anybody? HELLO ......  ECHO....... ???
  11. Hi All, I am am using the ob_start("ob_gzhandler");  function and it works fine, however I find that the images on my site that are being created using GD are slow to load even when small in size(1 - 4kb). the effect is the page is pieced togeather rather than displayed. So my question is, is there a way to identify the images used in a page when the page is being parsed by PHP and prefetch them, add them to a compression (ob_start("ob_gzhandler"); )? and send them to the browser, so the whole page is loaded faster. Thx Art
  12. FIXED - need to ensure all paths a relative if using STYLE tags to call image via higher dir.... :-\ UPDATED - I got the file below to work if i called it as an image not as a file callimage.html [code] <img src="image.php">[/code] however now the image will only show if the script calling the image is in the same DIR as the image script, ie works - displays image www/callimage.html www/image.php does not display image (the script is called but no image displays) www/callimage.html www/images/image.php is there a way to put the image into a $var or similar so the image can be called from another directory? thanks Art Hello, I am trying to get an image to resize using GD. The code works if the page sits alone image.php [code] if(!extension_loaded('gd')){     if(strtoupper(substr(PHP_OS,0,3)) == 'WIN'){         dl('php_gd2.dll');     }else{         dl('gd.so');     } } /* Set the width (in pixels) for the smaller version - we will calculate   the smaller version height based on the dimensions of the source image */ $smallwidth = 100; /* Create an image resource from the source graphic */ $im = ImageCreateFromGif('001.gif'); /* Get the source image dimensions: */ $srcwidth = ImagesX($im); $srcheight = ImagesY($im); /* By dividing our smaller version width by the source image width,   we will have the correct proportion for the smaller version height: */ $proportion = $smallwidth / $srcwidth; $smallheight = round($srcheight * $proportion); /* Now we can create a new image resource for the smaller version: */ $small = ImageCreateTrueColor($smallwidth, $smallheight); /* Finally, we can copy the contents of $im into $small   and resize it at the same time: */ ImageCopyResized($small, $im, 0, 0, 0, 0, $smallwidth, $smallheight, $srcwidth, $srcheight); /* Output to browser: */ header ("content-type: image/gif"); ImageGif($small); /* Destroy the image resources */ ImageDestroy($im); ImageDestroy($small);[/code] however if a place any echo or html before the [code]header ("content-type: image/gif"); ImageGif($small);[/code] it generates an error or shows the image code(garbage?) any code after the ImageGif($small); will not show at all. Any advice on how i actually use this function as part of an .inc file would be great, thanks Art
  13. thx guys, Orio I will give this a go, Jenk, I do have more than just HTML code as the code comes from several sources it may contain a variety of php functs from date/time to who knows what so the processing is important, security is not an issue as this is internal for testing different setups Art
  14. [quote author=thorpe link=topic=115026.msg468214#msg468214 date=1163559835] Chances are if your storing php within a database then you have made a poor design choice in the first place. You may however be able to work around your mistakes using output buffering. Take a look at [url=http://php.net/ob_start]ob_start[/url] and its related functions. [/quote] Thx for the direction Thorpe, however I fail to see your connection to how this helps me. Can you provide a little more detail on what functions i can use that will parse the content of the db field so the html is echo'd and the php is processed rather than written to screen as text. thx again Art
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.