Heim  >  Artikel  >  Backend-Entwicklung  >  php两个表内容如何相互调用

php两个表内容如何相互调用

WBOY
WBOYOriginal
2016-06-23 13:50:52990Durchsuche

在这期好声音中,曾在湖南卫视《百变大咖秀》中担任声乐老师的魏雪漫将登场。[img]115[/img]此外,从下周开始,每位导师都会带着自己的梦想导师参与团队对战,因此,梦想导师人选就成为大家揣测的对象,传言的版本令人目不暇接。 [img]119[/img]在本周最后出场的四位学员中,歌手魏雪漫可谓是最大牌的学员,她于[img]165[/img]

这是数据表news里的body字段的。但是图片在pic表里。[img]165[/img]中间的数字是pic表的ID,图片地址存在对应的ID后的add字段里。
要正确显示这个新闻 php代码应该怎么写。


回复讨论(解决方案)

输出该文本时,将形如 [img] 115[/img] 的替换成形如 php两个表内容如何相互调用 的
在 pic.php 中通过传入的 id 查找并输出图片数据

谢谢  能说的仔细点吗?我对正册不熟悉。

$s =<<< TXT在这期好声音中,曾在湖南卫视《百变大咖秀》中担任声乐老师的魏雪漫将登场。[img]115[/img]此外,从下周开始,每位导师都会带着自己的梦想导师参与团队对战,因此,梦想导师人选就成为大家揣测的对象,传言的版本令人目不暇接。 [img]119[/img]在本周最后出场的四位学员中,歌手魏雪漫可谓是最大牌的学员,她于[img]165[/img]TXT;echo preg_replace('/\[img\](\d+)\[\/img\]/', '<img  src="pic.php?id=$1" alt="php两个表内容如何相互调用" >', $s);
在这期好声音中,曾在湖南卫视《百变大咖秀》中担任声乐老师的魏雪漫将登场。php两个表内容如何相互调用此外,从下周开始,每位导师都会带着自己的梦想导师参与团队对战,因此,梦想导师人选就成为大家揣测的对象,传言的版本令人目不暇接。 php两个表内容如何相互调用在本周最后出场的四位学员中,歌手魏雪漫可谓是最大牌的学员,她于php两个表内容如何相互调用

pic.php?id=165读出来是img/110358tp58ocjpmn8paoob.jpg

但是php两个表内容如何相互调用 图片显示不出来

pic.php翻译的图片路径,是否正确?

pic.php?id=165读出来是img/110358tp58ocjpmn8paoob.jpg

但是php两个表内容如何相互调用 图片显示不出来


你要么302到真实图片地址,要么把图片读取出来输出,而不是就输出一个地址的字符串。

#1 中我说了“在 pic.php 中通过传入的 id 查找并 输出图片数据”
你认可了这个方案,所以才有了 #3 中的代码
那么你为什么只输出图片路径,而不输出图片数据呢?

如果你只打算输出图片路径的话,即将 [img]165[/img] 处理成 php两个表内容如何相互调用
那就

echo preg_replace_callback('/\[img\](\d+)\[\/img\]/', function($r) {  return '<img  src="' . getpicid($r[1]) . '" alt="php两个表内容如何相互调用" >'; }, $s);
函数 getpicid 用于从传入的 id 获取对应的图片路径

$s=<<< TXT在这期好声音中,曾在湖南卫视《百变大咖秀》中担任声乐老师的魏雪漫将登场。[img]115[/img]此外,从下周开始,每位导师都会带着自己的梦想导师参与团队对战,因此,梦想导师人选就成为大家揣测的对象,传言的版本令人目不暇接。 [img]119[/img]在本周最后出场的四位学员中,歌手魏雪漫可谓是最大牌的学员,她于[img]165[/img]TXT;$s=preg_replace('/\[img\](\d+)\[\/img\]/', function($r) {  return '<img  src="' . getpicid($r[1]) . '" alt="php两个表内容如何相互调用" >'; }, $s);	echo $s;


这是我的pic.php的代码
错误提示:Parse error: syntax error, unexpected T_FUNCTION 指向$s=preg_replace('/\[img\](\d+)\[\/img\]/', function($r) {这一行

你的 php 版本是过少?

php 版本是5.3

对不起我晕了
图片在pic表里,只有id和图片地址两个字段。
$s=preg_replace('/\[img\](\d+)\[\/img\]/', function($r)  放pic.php里显然不合适。
但是放在php两个表内容如何相互调用 这里有不知道如何连接数据表或是pic.php文件

$s=<<< TXT在这期好声音中,曾在湖南卫视《百变大咖秀》中担任声乐老师的魏雪漫将登场。[img]115[/img]此外,从下周开始,每位导师都会带着自己的梦想导师参与团队对战,因此,梦想导师人选就成为大家揣测的对象,传言的版本令人目不暇接。 [img]119[/img]在本周最后出场的四位学员中,歌手魏雪漫可谓是最大牌的学员,她于[img]165[/img]TXT;$s=preg_replace_callback('/\[img\](\d+)\[\/img\]/', function($r) {  return '<img  src="' . getpicid($r[1]) . '" alt="php两个表内容如何相互调用" >'; }, $s);	echo $s;function getpicid($id) {  return $id.'.gif';}
在这期好声音中,曾在湖南卫视《百变大咖秀》中担任声乐老师的魏雪漫将登场。php两个表内容如何相互调用此外,从下周开始,每位导师都会带着自己的梦想导师参与团队对战,因此,梦想导师人选就成为大家揣测的对象,传言的版本令人目不暇接。 php两个表内容如何相互调用在本周最后出场的四位学员中,歌手魏雪漫可谓是最大牌的学员,她于php两个表内容如何相互调用

这样在文本是没有问题但是

图片在pic表里,只有id和图片地址两个字段。
$s=preg_replace('/\[img\](\d+)\[\/img\]/', function($r)  放pic.php里显然不合适。
但是放在php两个表内容如何相互调用 这里有不知道如何连接数据表或是pic.php文件

你可在 getpicid 函数里查表获取 id 对应的图片地址
这样就填到正文里了

按原方案,查询不在输出正文时进行。而是在浏览器读取图片是进行的
你读到图片地址后 readifle('图片地址') 就是输出图片数据了

pic.php的代码

<?$result1=mysql_query("SELECT * FROM `pic` where id = '".$_GET['id']."'");while($row=mysql_fetch_array($result1)){?> <? $str=$row[attachment]; $str=preg_replace('/\[img\](.+?)\[\/img\]/', function($str) {  return '<img  src="' . getpicid($str[1]) . '" alt="php两个表内容如何相互调用" >'; }, $str);	echo $str; ?><?}?>


show.php的代码
<?$result1=mysql_query("SELECT * FROM `news` where id = '".$_GET['id']."'");while($row=mysql_fetch_array($result1)){?><?	$str=$row[message];	$str=preg_replace('/\[img\](\d+)\[\/img\]/', '<img  src="pic.php?aid=$1" alt="php两个表内容如何相互调用" >', $str);	echo $str;	?><?}?>

你可在 getpicid 函数里查表获取 id 对应的图片地址
这样就填到正文里了

按原方案,查询不在输出正文时进行。而是在浏览器读取图片是进行的
你读到图片地址后 readifle('图片地址') 就是输出图片数据了



原方案。pic.php里我用 echo readifle("img/359z0ycw7c3p6z39c73.jpg"); 前台还是不显示 

文件存在吗?路径对吗?

文件和路径都对

文件存在吗?路径对吗?



出现错误提示:Fatal error: Call to undefined function readifle()

文件和路径都对



都对

readfile

readfile



Warning: readfile() [function.readfile]: open_basedir restriction in effect. File(img/359z0ycw7c3p6z39c73.jpg) is not within the allowed path(s)

readfile 要不要先声明一下或引用什么的

百度翻译:警告:readfile() [功能]:ReadFile。open_basedir限制效应。(IMG文件/ 359z0ycw7c3p6z39c73。JPG)不在允许的路径(的)

我改成这样echo readifle("http://localhost/img/359z0ycw7c3p6z39c73.jpg");  pic.php读出一堆乱码,应该是图片数据了。但是php两个表内容如何相互调用还是不显示图片 就一个红叉

都报错了,还能显示图片?

我改成这样echo readifle("http://localhost/img/359z0ycw7c3p6z39c73.jpg"); 不报错了。
 pic.php读出一堆乱码,应该是图片数据了。
但是php两个表内容如何相互调用还是不显示图片 就一个红叉

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn