當前位置:首頁 » 編程語言 » php字元串格式

php字元串格式

發布時間: 2022-11-04 19:40:09

php如何按一定格式輸出字元串

$fp = fopen("myfile", "r");//myfile指你的文件路徑
while (!feof($fp)) {
$line = fgets($fp);//存到變數
echo $line;//輸出到頁面
}
fclose($fp);

㈡ php字元串的格式化

根據經驗,PHP里沒有長整型,默認就是32位的INT,超出范圍就是FLOAT。所以這里$long是INT32
7.53160e+8叫做科學計數法,自己查著學習一下,這是常識。表示7.53160乘以10的8次方。
%%作為printf的參數,就表示輸出一個%,而如果直接一個%表達的是別的意思,例如%d表示按整數形式輸出printf的下一個參數
e是英文字母。「%e」是一種printf的參數,表示用科學計數法輸出printf的下一個參數。
「%和0和一個數和小數點和另一個數和f」是一種printf的參數,表示用浮點形式輸出下一個參數。組合很多。如果全部帶齊了,0表示用數字0來填補空白,小數點前的數表示一個顯示幾位數(多了不管少了拿上一句話里提到的0來填補),小數點後的數表示顯示出來的數里小數點後有幾位數(多了不管少了拿上一句話里提到的0來填補)這下回答了兩個問題
8是憑空想出來的,你可以用別的數,答案不同而已。
最後幾個完全是錯的。錯誤1:$在PHP里的雙引號里,會代表轉義,也就是說,因為$在雙引號里,所以參數在進入printf之前,參數里的$已經被處理沒了(是的,雙引號里的東西在PHP里會被預處理一下,可以把雙引號理解為一個函數,而單引號就不會處理$號)。錯誤2:對於printf,%才是控制格式輸出的符號,$號只會被原樣輸出。所以為了得到答案,程序末尾必須是這樣的:
printf("[%s]<br/>",$str);
printf("[%8s]<br/>",$str);
printf("[%-8s]<br/>",$str);
printf("[%08s]<br/>",$str);
printf("[%'\$8s]<br/>",$str);
那麼,兩端的「【」和「】」表示這兩個字元,原樣顯示。中間是「%s」帶各種參數。第一個,不帶別的參數,就顯示出來。後面幾個帶8的,把後面的$str顯示為至少8位。如果沒有別的參數,就用空格補足,左邊補右對齊。帶負號的,右邊補左對齊。帶0或者空格表示用這兩個字元補足,而其他補足字元必須用「'」符號當前綴。所以%'\$8s首先被雙引號預處理使得\$變成$,所以printf收到的參數是%'$8s,然後printf分析到了%s以及參數'$和8就認為是在$str前面補足8位,用$這個字元來補。
總的來說,printf里,%表示控制輸出格式。s就是一個英文字母,%s表示按照String的方式輸出。如果用雙引號把參數傳給printf還要注意「$」和「\」被雙引號轉義。

㈢ PHP16進制格式字元串,轉換成具體值的方法

最簡單的就是base_convert()函數,可以實現2進制,8進制,10進制,16進制間的任意轉換,
還有hexdec()可以實現16進制轉換成10進制。

㈣ 如何使用PHP函數sprintf將字元串格式化

如果有一個字元串$str = '99.9';,怎麼樣使這個字元串變成99.90呢?
我們需要用到PHP的格式化字元串函數sprintf()
函數說明:sprintf(格式, 要轉化的字元串)
返回:格式化好的字元串
例子:
$str = '99.9';
$result = sprintf('%01.2f', $str);
echo $result;//結果顯示99.90

解釋下,上面例子中的格式
這個 %01.2f 是什麼意思呢?
1、這個 % 符號是開始的意思,寫在最前面表示指定格式開始了。 也就是 "起始字元", 直到出現 "轉換字元" 為止,就算格式終止。
2、跟在 % 符號後面的是 0, 是 "填空字元" ,表示如果位置空著就用0來填滿。
3、在 0 後面的是1,這個 1 是規定整個所有的字元串佔位要有1位以上(小數點也算一個佔位)。
如果把 1 改成 6,則 $result的值將為 099.90
因為,在小數點後面必須是兩位,99.90一共5個佔位,現在需要6個佔位,所以用0來填滿。
4、在 %01 後面的 .2 (點2) 就很好理解了,它的意思是,小數點後的數字必須佔2位。 如果這時候,$str 的值為9.234,則 $result的值將為9.23.
為什麼4 不見了呢? 因為在小數點後面,按照上面的規定,必須且僅能佔2位。 可是 $str 的值中,小數點後面佔了3位,所以,尾數4被去掉了,只剩下 23。
5、最後,以 f "轉換字元" 結尾。

㈤ 字元串的16、PHP中介紹

string是一系列字元。在 php 中,字元和位元組一樣,也就是說,一共有 256 種不同字元的可能性。這也暗示 php 對 Unicode 沒有本地支持。請參閱函數utf8_encode()和utf8_decode()以了解有關 Unicode 支持
注:一個字元串變得非常巨大也沒有問題,php 沒有給字元串的大小強加實現范圍,所以完全沒有理由擔心長字元串。
語法
字元串可以用三種字面上的方法定義。
單引號
雙引號
定界符 指定一個簡單字元串的最簡單的方法是用單引號(字元 ')括起來。
要表示一個單引號,需要用反斜線(/)轉義,和很多其它語言一樣。如果在單引號之前或字元串結尾需要出現一個反斜線,需要用兩個反斜線表示。注意如果試圖轉義任何其它字元,反斜線本身也會被顯示出來!所以通常不需要轉義反斜線本身。
注:在 php 3 中,此情況下將發出一個 E_NOTICE 級的警告。
注:和其他兩種語法不同,單引號字元串中出現的變數和轉義序列不會被變數的值替代。
<?phpecho 'this is a simple string';echo 'You can also have embedded newlines instrings this way as it isokay to do';// Outputs: Arnold once said: I'll be backecho 'Arnold once said: I/'ll be back';// Outputs: You deleted C:/*.*?echo 'You deleted C://*.*?';// Outputs: You deleted C:/*.*?echo 'You deleted C:/*.*?';// Outputs: This will not expand: /n a newlineecho 'This will not expand: /n a newline';// Outputs: Variables do not $expand $eitherecho 'Variables do not $expand $either';?>
此外,如果試圖轉義任何其它字元,反斜線本身也會被顯示出來!
雙引號字元串最重要的一點是其中的變數名會被變數值替代。細節參見字元串解析。 另一種給字元串定界的方法使用定界符語法(「<<<」)。應該在 <<< 之後提供一個標識符,然後是字元串,然後是同樣的標識符結束字元串。
結束標識符必須從行的第一列開始。同樣,標識符也必須遵循 php 中其它任何標簽的命名規則:只能包含字母數字下劃線,而且必須以下劃線或非數字字元開始。
例子 11-3. 非法的例子
<?phpclass foo { public $bar = <<<EOTbarEOT;}?>
定界符文本表現的就和雙引號字元串一樣,只是沒有雙引號。這意味著在定界符文本中不需要轉義引號,不過仍然可以用以上列出來的轉義代碼。變數會被展開,但當在定界符文本中表達復雜變數時和字元串一樣同樣也要注意。
例子 11-4. 定界符字元串例子
<?php$str = <<<EODExample of stringspanning multiple linesusing heredoc syntax.EOD;/* More complex example, with variables. */class foo{ var $foo; var $bar; function foo() { $this->foo = 'Foo'; $this->bar = array('Bar1', 'Bar2', 'Bar3'); }}$foo = new foo();$name = 'MyName';echo <<<EOTMy name is $name. I am printing some $foo->foo.Now, I am printing some {$foo->bar[1]}.This should print a capital 'A': /x41EOT;?>注:定界符支持是 php 4 中加入的。 當用雙引號或者定界符指定字元串時,其中的變數會被解析。
有兩種語法,一種簡單的和一種復雜的。簡單語法最通用和方便,它提供了解析變數,數組值,或者對象屬性的方法。
復雜語法是 php 4 引進的,可以用花括弧括起一個表達式。
簡單語法如果遇到美元符號($),解析器會盡可能多地取得後面的字元以組成一個合法的變數名。如果想明示指定名字的結束,用花括弧把變數名括起來。
<?php$beer = 'Heineken';echo $beer's taste is great; // works, ' is an invalid character for varnamesecho He drank some $beers; // won't work, 's' is a valid character for varnamesecho He drank some ${beer}s; // worksecho He drank some {$beer}s; // works?>
同樣也可以解析數組索引或者對象屬性。對於數組索引,右方括弧(])標志著索引的結束。對象屬性則和簡單變數適用同樣的規則,盡管對於對象屬性沒有像變數那樣的小技巧。
<?php// These examples are specific to using arrays inside of strings.// When outside of a string, always quote your array string keys// and do not use {braces} when outside of strings either.// Let's show all errorserror_reporting(E_ALL);$fruits = array('strawberry' => 'red', 'banana' => 'yellow');// Works but note that this works differently outside string-quotesecho A banana is $fruits[banana].;// Worksecho A banana is {$fruits['banana']}.;// Works but php looks for a constant named banana first// as described below.echo A banana is {$fruits[banana]}.;// Won't work, use braces. This results in a parse error.echo A banana is $fruits['banana'].;// Worksecho A banana is . $fruits['banana'] . .;// Worksecho This square is $square->width meters broad.;// Won't work. For a solution, see the complex syntax.echo This square is $square->width00 centimeters broad.;?>
對於任何更復雜的情況,應該使用復雜語法。
復雜(花括弧)語法不是因為語法復雜而稱其為復雜,而是因為用此方法可以包含復雜的表達式。
事實上,用此語法可以在字元串中包含任何在名字空間的值。僅僅用和在字元串之外同樣的方法寫一個表達式,然後用 { 和 } 把它包含進來。因為不能轉義「{」,此語法僅在 $ 緊跟在 { 後面時被識別(用「{/$」或者「/{$」來得到一個字面上的「{$」)。用一些例子可以更清晰:
<?php// Let's show all errorserror_reporting(E_ALL);$great = 'fantastic';// 不行,輸出為:This is { fantastic}echo This is { $great};// 可以,輸出為:This is fantasticecho This is {$great};echo This is ${great};// Worksecho This square is {$square->width}00 centimeters broad.;// Worksecho This works: {$arr[4][3]};// This is wrong for the same reason as $foo[bar] is wrong// outside a string. In otherwords, it will still work but// because php first looks for a constant named foo, it will// throw an error of level E_NOTICE (undefined constant).echo This is wrong: {$arr[foo][3]};// Works. When using multi-dimensional arrays, always use// braces around arrays when inside of stringsecho This works: {$arr['foo'][3]};// Works.echo This works: . $arr['foo'][3];echo You can even write {$obj->values[3]->name};echo This is the value of the var named $name: {${$name}};?>
訪問和修改字元串中的字元
字元串中的字元可以通過在字元串之後用花括弧指定所要字元從零開始的偏移量來訪問和修改。
注:為了向下兼容,仍然可以用方括弧。不過此語法自 php 4 起已過時。
例子 11-5. 一些字元串例子
<?php// Get the first character of a string$str = 'This is a test.';$first = $str{0};// Get the third character of a string$third = $str{2};// Get the last character of a string.$str = 'This is still a test.';$last = $str{strlen($str)-1};// Modify the last character of a string$str = 'Look at the sea';$str{strlen($str)-1} = 'e';?> 字元串可以用「.」(點)運算符連接。注意這里不能用「+」(加)運算符。更多信息參見字元串運算符。
有很多實用函數來改變字元串。
普通函數見字元串函數一節,高級搜索和替換見正則表達式函數(兩種風格:Perl 和 POSIX 擴展)。
還有 URL 字元串函數,以及加密/解密字元串的函數(mcrypt 和 mhash)。
最後,如果還是找不到想要的函數,參見字元類型函數。 可以用 (string) 標記或者strval()函數將一個值轉換為字元串。當某表達式需要字元串時,字元串的轉換會在表達式范圍內自動完成。例如當使用echo()或者print()函數時,或者將一個變數值與一個字元串進行比較的時候。閱讀手冊中有關類型和類型戲法中的部分有助於更清楚一些。參見settype()。
布爾值TRUE將被轉換為字元串 1,而值FALSE將被表示為 (即空字元串)。這樣就可以隨意地在布爾值和字元串之間進行比較。
整數或浮點數數值在轉換成字元串時,字元串由表示這些數值的數字字元組成(浮點數還包含有指數部分)。
數組將被轉換成字元串 Array,因此無法通過echo()或者print()函數來輸出數組的內容。請參考下文以獲取更多提示。
對象將被轉換成字元串 Object。如果因為調試需要,需要將對象的成員變數列印出來,請閱讀下文。如果希望得到該對象所依附的類的名稱,請使用函數get_class()。自 php 5 起,如果合適可以用 __toString() 方法。
資源類型總是以 Resource id #1 的格式被轉換成字元串,其中 1 是 php 在運行時給資源指定的唯一標識。如果希望獲取資源的類型,請使用函數get_resource_type()。
NULL將被轉換成空字元串。
正如以上所示,將數組、對象或者資源列印出來,並不能提供任何關於這些值本身的有用的信息。請參閱函數print_r()和var_mp(),對於調試來說,這些是更好的列印值的方法。
可以將 php 的值轉換為字元串以永久地儲存它們。這種方法被稱為序列化,可以用函數serialize()來完成該操作。如果在安裝 php 時建立了 WDDX 支持,還可以將 php 的值序列化為 XML 結構。 當一個字元串被當作數字來求值時,根據以下規則來決定結果的類型和值。
如果包括「.」,「e」或「E」其中任何一個字元的話,字元串被當作float來求值。否則就被當作整數。
該值由字元串最前面的部分決定。如果字元串以合法的數字數據開始,就用該數字作為其值,否則其值為 0(零)。合法數字數據由可選的正負號開始,後面跟著一個或多個數字(可選地包括十進制分數),後面跟著可選的指數。指數是一個「e」或者「E」後面跟著一個或多個數字。
<?php$foo = 1 + 10.5; // $foo is float (11.5)$foo = 1 + -1.3e3; // $foo is float (-1299)$foo = 1 + bob-1.3e3; // $foo is integer (1)$foo = 1 + bob3; // $foo is integer (1)$foo = 1 + 10 Small Pigs; // $foo is integer (11)$foo = 4 + 10.2 Little Piggies; // $foo is float (14.2)$foo = 10.0 pigs + 1; // $foo is float (11)$foo = 10.0 pigs + 1.0; // $foo is float (11)?>
此轉換的更多信息見 Unix 手冊中關於 strtod(3) 的部分。
如果想測試本節中的任何例子,可以拷貝和粘貼這些例子並且加上下面這一行自己看看會發生什麼:
<?phpecho /$foo==$foo; type is . gettype ($foo) . <br />/n;?>
不要指望在將一個字元轉換成整型時能夠得到該字元的編碼(可能也會在 C 中這么做)。如果希望在字元編碼和字元之間轉換,請使用ord()和chr()函數。

㈥ 如何使用PHP函數sprintf將字元串格式化

語法: string sprintf(string format, mixed [args]...);

返回值: 字元串
函數種類: 資料處理
PHP函數sprintf()用來將字元串格式化。參數 format 是轉換的格式,以百分比符號 % 開始到轉換字元為止。而在轉換的格式間依序包括了
填空字元。0 的話表示空格填 0;空格是默認值,表示空格就放著。
對齊方式。默認值為向右對齊,負號表向左對齊。
欄位寬度。為最小寬度。
精確度。指在小數點後的浮點數位數。
PHP函數sprintf()的類型,見下表 % 印出百分比符號,不轉換。
b 整數轉成二進位。
c 整數轉成對應的 ASCII 字元。
d 整數轉成十進位。
f 倍精確度數字轉成浮點數。
o 整數轉成八進位。
s 整數轉成字元串。
x 整數轉成小寫十六進位。
X 整數轉成大寫十六進位。

PHP函數sprintf()的使用範例
<? $money1 = 68.75; $money2 = 54.35; $money = $money1 + $money2; // 此時變數 $money 值為 "123.1"; $formatted = sprintf ("%01.2f", $money); // 此時變數 $ formatted 值為 "123.10" ?>

㈦ php 截取utf-8格式的字元串實例代碼

php
截取utf-8格式的字元串
php中,我們經常需要截取字元串。英文字元佔用一個位元組,中文字元佔用兩個位元組,但中文字元佔用兩個位元組是相對於GBK編碼而言但是在時下國際流行的UTF8編碼中,一個中文字元佔用3個位元組。本文章向大家介紹一個php
截取utf-8格式字元串的函數。
舉例說明:
function
truncate_utf8_string($string,
$length,
$etc
=
'...')
{
$result
=
'';
$string
=
html_entity_decode
(
trim
(
strip_tags
(
$string
)
),
ENT_QUOTES,
'UTF-8'
);
$strlen
=
strlen
(
$string
);
for($i
=
0;
(($i
<
$strlen)
&&
($length
>
0));
$i
++)
{
if
($number
=
strpos
(
str_pad
(
decbin
(
ord
(
substr
(
$string,
$i,
1
)
)
),
8,
'0',
STR_PAD_LEFT
),
'0'
))
{
if
($length
<
1.0)
{
break;
}
$result
.=
substr
(
$string,
$i,
$number
);
$length
-=
1.0;
$i
+=
$number
-
1;
}
else
{
$result
.=
substr
(
$string,
$i,
1
);
$length
-=
0.5;
}
}
$result
=
htmlspecialchars
(
$result,
ENT_QUOTES,
'UTF-8'
);
if
($i
<
$strlen)
{
$result
.=
$etc;
}
return
$result;
}
如果需要截取utf-8格式的字元串,直接調用這個函數即可。
<?php
$str="如果需要截取utf-8格式的字元串,直接調用這個函數即可。";
echo
truncate_utf8_string($str,10);//輸出結果:如果需要截取utf-8格...
?>
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

㈧ php 中的字元串中的%s和%d是什麼意思

親,字元串中的%s和%d代表你一定格式的可替換佔位符。

%s:代表字元串

%d:代表數字

例如:

echo sprintf('這是一個字元串:%s,這是一個數字:%d', '字元串', 123);

這個會輸出:

這是一個字元串:字元串,這是一個數字:123

希望可以幫到你喲!~~有不懂的可以繼續追問,或私信,或到boboidea-本人博客留言!~

㈨ php中字元串的兩種表現形式

$a="abcde12";
$b="abcdf6";
echo "<pre>";
var_mp(diffStr($a,$b));
echo "</pre>";
/*
*比較字元串不同的字元
*@參數:$str1:第一個字元串,$str2:第二個字元串
*@<a href="https://www..com/s?wd=%E8%BF%94%E5%9B%9E%E5%80%BC&tn=44039180_cpr&fenlei=-z4Bmy-bIi4WUvYETgN-" target="_blank" class="-highlight">返回值</a>:不同字元串的數組,
*/
function diffStr($str1,$str2){
$sArr1 = str_split($str1);
$sArr2 = str_split($str2);

$num1 = count($sArr1);
$num2 = count($sArr2);

$aNew = array();

if($num1 > $num2){
foreach($sArr1 as $k=>$val){
if($num2 > $k && www.hbbz08.com $val != $sArr2[$k]){
$aNew[] = array('s1'=>$val,'s2'=>$sArr2[$k]);
}elseif($num2 <= $k){
$aNew[] = array("s1"=>$val);
}
}
}elseif($num1 < $num2){
foreach($sArr2 as $k=>$val){
if($num1 > $k && $val != $sArr1[$k]){
$aNew[] = array('s1'=>$sArr1[$k],'s2'=>$val);
}elseif($num1 <= $k){
$aNew[] = array("s2"=>$val);
}
}
}elseif($num1 == $num2){
foreach($sArr1 as $k=>$val){
if($val != $sArr2[$k]){
$aNew[] = array('s1'=>$val,'s2'=>$sArr2[$k]);
}
}
}

return $aNew;
}

熱點內容
如何用js腳本 發布:2025-01-11 00:47:32 瀏覽:886
日誌和資料庫 發布:2025-01-11 00:47:24 瀏覽:125
windows配置ftp 發布:2025-01-11 00:35:02 瀏覽:656
des演算法代碼c 發布:2025-01-11 00:33:42 瀏覽:805
共享文件夾設置密碼無法訪問 發布:2025-01-11 00:32:49 瀏覽:478
槽鋼演算法 發布:2025-01-11 00:26:21 瀏覽:883
linux命令包 發布:2025-01-10 23:54:26 瀏覽:32
python輪廓 發布:2025-01-10 23:49:23 瀏覽:179
思科配置線怎麼選 發布:2025-01-10 23:48:44 瀏覽:704
解壓水晶泥 發布:2025-01-10 23:27:23 瀏覽:634