Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > ใช้ function(); ใน str_replace ไม่ได้หรอครับ ช่วยผมหน่อยนะครับ



 

ใช้ function(); ใน str_replace ไม่ได้หรอครับ ช่วยผมหน่อยนะครับ

 



Topic : 025568

Guest




คือผมกำลัง หัดทำ php แบบเปลี่ยน template ได้อยู่อ่ะครับ

ไฟล์ template (templates/test1/sidebar.html)

Code
<h2>Category</h2>
<ul class="sidemenu">
{categories}
</ul>

<h2>Recent Blogs</h2>
<ul class="sidemenu">
{recentblogs}
</ul>

<h2>Popular Tags</h2>
<ul class="sidemenu">
<p>{tags}</p>
</ul>




ไฟล์ index.php

Code (PHP)
<?

include "config.php"; 
include "functions.php";

$template = "test1";

$categories = "<? categories(); ?>";
$recentblogs = "<? recentblogs(); ?>";
$tags = "<? include 'tags.php'; ?>";

$sidebar = file_get_contents("templates/$template/sidebar.html");
$sidebar = str_replace("{categories}", $categories ,$sidebar);
$sidebar = str_replace("{recentblogs}", $recentblogs ,$sidebar);
$sidebar = str_replace("{tags}", $tags ,$sidebar);

echo $sidebar;

?>



ผมไม่รู้ว่าผิดตรงไหน ยังหาไม่เจอ เวลา รันดูแล้วว่างเปล่าครับ

อ้อลองเอา function ไปดูด้วยนะครับ (functions.php)

Code (PHP)
<?

//categories
function categories()
{
$categories=mysql_query("SELECT * FROM categories");

while ($category=mysql_fetch_array($categories))
	{
	echo "<li><a href=\"?site=category&amp;cat=$category[name]\">$category[name]</a></li>";
	}
}


//function to Recent Blogs
function recentblogs()
{
$num_recent = "5";
$recentblogs=mysql_query("SELECT * FROM news order by id desc LIMIT 0 , $num_recent");
while ($recent=mysql_fetch_array($recentblogs))
	{
$recent[title] = strip_tags($recent[title]);
echo "<li><a href='?site=news&amp;id=$recent[id]' title='$recent[title]'>$recent[title]</a></li>";
	}
}


?>




ไฟล์ tags.php

Code (PHP)
<?php
$values = '';
$result = mysql_query("SELECT tags FROM news");
while($row = mysql_fetch_array($result))
    $values .= $row['tags']." ";

$values = explode(' ', $values);
$values=(array_count_values($values));

array_multisort($values, SORT_DESC);
$values=array_slice($values, 0,10);
//SHUFFLE
   $randomized_keys = array_rand($values, count($values));
   foreach($randomized_keys as $current_key) {
   $values2[$current_key] = $values[$current_key]; 
   }

//ZA IZRACUN
foreach ($values2 as $name=>$value)
{
$kolk+=$value;
$ss+=1;
}
//ZA IZRACUN

//ZA IZPIS
foreach ($values2 as $name=>$value)
{
$size=$tagsize*$value/$kolk;
echo "<a href='$urlweb/?site=search&amp;keyword=$name'><strong>$name</strong></a> ";
}
//ZA IZPIS
?>




Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2009-03-18 17:06:36 By : Bung View : 1617 Reply : 8
 

 

No. 1



โพสกระทู้ ( 3,468 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter

$sidebar = str_replace("{categories}", $categories ,$sidebar);
$sidebar = str_replace("{recentblogs}", $recentblogs ,$sidebar);
$sidebar = str_replace("{tags}", $tags ,$sidebar);

เครื่องหมาย ตามกฎของ Regexp ต้องใส่ escage string นะครับ คงรู้นะว่าตัวไหนต้องใส่






Date : 2009-03-18 18:55:16 By : pjgunner
 


 

No. 2

Guest


ยัง งง อยู่เลยครับ

ผมลองเปลี่ยนตรงนี้ ก็ยังไม่ได้ครับ error เลย

Code
$sidebar = str_replace("{categories}", \$categories ,$sidebar);
$sidebar = str_replace("{recentblogs}", \$recentblogs ,$sidebar);
$sidebar = str_replace("{tags}", \$tags ,$sidebar);



ลองเป็นแบบนี้ ก็ว่างเปล่าเหมือนเดิม

Code (PHP)
<?
$categories = "<? categories\(\); ?>";
$recentblogs = "<? recentblogs\(\); ?>";
$tags = "<? include \'tags.php\'; ?>";
?>



เริ่มมึนละครับ T^T
Date : 2009-03-18 22:00:39 By : Bang
 

 

No. 3



โพสกระทู้ ( 3,468 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter

ตรงนี้คับ

$sidebar = str_replace("\{categories\}", $categories ,$sidebar);
$sidebar = str_replace("\{recentblogs\}", $recentblogs ,$sidebar);
$sidebar = str_replace("\{tags\}", $tags ,$sidebar);


http://gunner.freetzi.com/newVer
Date : 2009-03-19 10:42:06 By : pjgunner
 


 

No. 4

Guest


อ่าคือว่า ยังไม่ได้อ่ะครับ

เวลาแสดงผล กลายเป็น แสดง

Quote:
Category
{categories}

Recent Blogs
{recentblogs}

Popular Tags
{tags}


ยังไม่ยอมแสดงค่าใน function รบกวนอีกหน่อยนะครับ
Date : 2009-03-19 11:57:42 By : Bang
 


 

No. 5



โพสกระทู้ ( 3,468 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter

ผมไม่เข้าใจ

$sidebar = file_get_contents("templates/$template/sidebar.html");
$sidebar = str_replace("{categories}", $categories ,$sidebar);
$sidebar = str_replace("{recentblogs}", $recentblogs ,$sidebar);
$sidebar = str_replace("{tags}", $tags ,$sidebar);

หมายความว่าไงครับ คืนค่ามาแล้วไม่ใช้

นี่คับรูปแบบคำสั่ง

mixed str_replace ( mixed search, mixed replace, mixed subject [, int &count] )
Date : 2009-03-19 18:13:21 By : pjgunner
 


 

No. 6

Guest


คือว่า

Code (PHP)
<?
$sidebar = file_get_contents("templates/$template/sidebar.html"); // เอา code ใน sidebar.html
$sidebar = str_replace("{categories}", $categories ,$sidebar); // หาคำว่า {categories} จาก sidebar.html แล้วแทนด้วย categories();
$sidebar = str_replace("{recentblogs}", $recentblogs ,$sidebar); // หาคำว่า {recentblogs} จาก sidebar.html แล้วแทนด้วย recentblogs();
$sidebar = str_replace("{tags}", $tags ,$sidebar); // หาคำว่า {tags} จาก sidebar.html แล้วแทนด้วย include 'tags.php';

echo $sidebar; //แสดงผลทั้งหมดที่ทำมา
?>

Date : 2009-03-19 21:12:19 By : Bang
 


 

No. 7



โพสกระทู้ ( 3,468 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter

ขอโทษที ไม่ต้อง ใส่ เอสเคป สตริงครับ

ผมว่าโค้ดคุณถูกต้องแล้ว เหลือแต่ว่า ไฟล์ที่ดึงมา เป็น UTF8 ซึ่งเก็บเป็น 4 ไบต์

ซึ่ง ฟังชั่น str_replace อาจเป็น ไบนารี่

ซึ่งเรื่องนี้ ผมก็ไม่ค่อยแน่ใจ ลองใช้ preg_replace หรือ ereg_replace ดูนะครับ หรือไม่ก็ลอง iconv เพื่อแปลงเป็น ไบต์ก่อน

หรือลอง

ereg_replace("\{categories\}", $str_to_replace, $str_to_search);

หรือ

preg_replace("{recentblogs}", $str_to_replace, $str_to_search);


ไม่แน่เหมือนกัน ใช้กับ UTF8 ได้ป่าว
Date : 2009-03-19 22:53:45 By : pjgunner
 


 

No. 8

Guest


คือผมว่า มันน่าจะเกี่ยวกับ function() รึป่าวครับ เพราะผมลองทำ ส่วนของ header.html แล้ว มันได้นะครับ

ไฟล์ header.html ผม อยู่ใน (templates/test1/header.html)

Code
<html>
<head>

<meta name="Keywords" content="your, keywords" />
<meta http-equiv="Content-Type" content="text/html; charset=TIS-620" />
<link rel="stylesheet" href="templates/{template}/images/{template}.css" type="text/css" />

<title>{title} - {site}</title>

</head>

<body>

<div id="wrap">

<div id="header">

<h1 id="logo-text"><a href="index.php">{title}</a></h1>
<p id="slogan">{description}</p>

</div>


ผมลองทำ index ดู ก็ใช้ได้นะครับ แบบนี้

Code (PHP)
<?

include "config.php"; 
include "functions.php";

$template = "test1";

$header = file_get_contents("templates/$template/header.html");
$header = str_replace("{template}", $template ,$header);
$header = str_replace("{title}", $title ,$header);
$header = str_replace("{site}", $site ,$header);
$header = str_replace("{description}", $description ,$header);

echo $header;

?> 


พวกค่า $title / $site / $description พวกนี้ มันก็มาจาก

include "config.php";
include "functions.php";

นะครับ ก็แสดงผลได้ คือ เอา โครง html ใน header.html มาแล้ว หาพวก {template} / {title} / {site} /...

แล้วแทน ตัวแปรลงไป พอ echo $header; ดูผล มันก็แสดง ถูกต้อง

คือ แสดงโครงสร้าง html พร้อม เปลี่ยน พวก {...} ตรงส่วนที่แทน ออกเป็นค่าของตัวแปรนั้นๆ




แต่ มาส่วน sidebar ที่ผมทำมีปัญหา คือว่าอย่างที่บอกอ่ะครับ

ตัวบน ใช้ str_replace("{......}", $ตัวแปร,$header);

ส่วน sidebar ที่มีปัญหา เพราะ

ใช้ str_replace("{......}", function(); ,$header);

เป็นเพราะใช้แบบนี้ไม่ได้ ผมก็เลยลอง ทำให้กลับเป็นตัวแปรเหมือน header

เลยได้เป็น

Code (PHP)
<?
$categories = "<? categories(); ?>";
$recentblogs = "<? recentblogs(); ?>";
$tags = "<? include 'tags.php'; ?>";

$sidebar = file_get_contents("templates/$template/sidebar.html");
$sidebar = str_replace("{categories}", $categories ,$sidebar);
$sidebar = str_replace("{recentblogs}", $recentblogs ,$sidebar);
$sidebar = str_replace("{tags}", $tags ,$sidebar);

echo $sidebar; 
?>


แต่ก็ไม่สำเร็จอ่ะครับ รบกวนหน่อยนะครับ ><"
Date : 2009-03-20 12:12:50 By : Bang
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ใช้ function(); ใน str_replace ไม่ได้หรอครับ ช่วยผมหน่อยนะครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 00
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่