我需要file_get_contents()在 smarty tpl 文件中使用 PHP 。我不能在 PHP 中使用它并将它分配给 smarty 模板。因为 URL 是通过 smarty 模板文件中的循环动态生成的。所以我使用 smarty 插件功能来完成这项任务。但我想知道是否有任何方法可以直接在模板文件中使用它,而不是从插件文件中解析它。
我附上了我用来实现这个功能的插件代码。请任何人让我知道如何直接在 smarty tpl 文件中使用它。
function smarty_function_getTitle($params)
{
if ($params['id']) {
$content = file_get_contents("http://youtube.com/get_video_info?video_id=".$params['id']);
parse_str($content, $ytarr);
return $ytarr['title'];
}
}
Run Code Online (Sandbox Code Playgroud)
我使用下面的代码在 smarty 模板中调用它:
{getTitle id=$videoId}
Run Code Online (Sandbox Code Playgroud)
欢迎提出建议!
当我尝试使用php file_get_contents函数读取kat.cr的rss feed时,我得到了一些不可读的文本但是当我用浏览器打开它时,feed很好.
我尝试了很多其他主机但没有机会获得正确的数据.
我甚至尝试将用户代理设置为不同的浏览器,但仍然没有变化.
这是一个我尝试过的简单代码:
$options = array('http' => array('user_agent' => 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1'));
$url = 'https://kat.cr/movies/?rss=1';
$data = file_get_contents($url, FILE_TEXT, stream_context_create($options));
echo $data;
Run Code Online (Sandbox Code Playgroud)
我很好奇他们是如何做的以及我能做些什么来克服这个问题.
不可读文本的一部分:
<ي]يřم6-öپي©™ت,A7 {»AGW&يؤé;éN¹\ S'HK \S¤-¤l+ے÷ùI"(إژzA5ةض;غ%K4 {qtqy½ùو一个^»¬nھ|ûٹ发Eه¤Ĵřصڈ1个Q ^}sü§7uس升دزؤŸ¾²Ÿف武•يغWGG·我س&M>,"J〜$ےžؤ(ZIج'²جٹم÷|حغ?!";گ'Ÿس¢ï³【Tر5ز³SGYٹ.ں@
实际上,每当我打开链接时,都会出现一些不同的不可读文本.
我将以下 JSON 保存在文件“test.json”中:
{
"metadata": [
{
"src": [
{
"files": [
"src/**.csproj"
]
}
],
"dest": "api",
"disableGitFeatures": false,
"disableDefaultFilter": false
}
]
}
Run Code Online (Sandbox Code Playgroud)
我想修改“src”元素。代替:
"src": [
{
"files": [
"src/**.csproj"
]
}
],
Run Code Online (Sandbox Code Playgroud)
它必须是:
"src": [
{
"files": [
"*.csproj"
],
"cwd":".."
}
],
Run Code Online (Sandbox Code Playgroud)
我修改“文件”的第一个元素并添加“cwd”。这应该是直截了当的,但我正在努力在 powershell 中实现这一目标。任何人都可以指出我正确的方向吗?
感谢您提前提供任何指示。
我需要更改PHP在使用file_get_contents()请求文件时发送的标头.这是可能的还是我必须使用CURL?
我有一个php文件list.php
<?php
$arr=array('444','555');
echo var_export($arr);
?>
Run Code Online (Sandbox Code Playgroud)
现在我想使用file_get_contents从另一个php脚本获取数组.怎么能实现这个目标?我不想使用会话.这两个脚本位于不同的服务器上.
我即将阅读一个200Mb的文本文件,然后在里面编辑一些东西,然后将其保存回来.但我有错误.所以:
另外哪种文件读取方法最适合打开和解析Big Sized文件?我的意思是:
我使用PHP函数file_get_contents作为代理来获取两个不同的Web主机上的网站.
它适用于除维基百科以外的所有网站.
它每次都给我这个输出:
WIKIMEDIA FOUNDATION
错误
我们的服务器目前遇到技术问题.这可能是暂时的,应尽快解决.请在几分钟后再试一次.
谁知道问题是什么?
我需要POST cookies.txt然后使用CURL将页面下载到文本文件.这是我的FGC示例,但显然FGC对Cookie不好,所以我需要CURL.
<?php
$file = file('source\1.txt');
foreach ($file as $link)
{
$link = trim($link);
$link2 = "http://site-that.com/authenticates?={$link}";
$downloaded = file_get_contents($link2);
$myFile = "parsed/$link" . ".txt";
$fh = fopen($myFile, 'a') or die('Cannot open file');
fwrite($fh, $downloaded);
}
$timestamp = time();
rename('source\1.txt', "source/done/done-{$timestamp}.txt");
echo 'Finished';
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?代码示例将非常感激.像google.com这样做的一个简单例子也很棒.另外,如果你有另一种方法可以做到这一点,那就更快了,请发帖!
当我尝试使用API从API获取数据时
file_get_contents("http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.xchange%20where%20pair%20in%20(%22USDINR%22)&format=json&env=store://datatables.org/alltableswithkeys&callback=");
Run Code Online (Sandbox Code Playgroud)
我把结果作为一个字符串.有没有办法将它转换回数组?我得到的字符串是
string(202) "{"query":{"count":1,"created":"2014-03-11T13:00:31Z","lang":"en-US","results":{"rate":{"id":"USDINR","Name":"USD to INR","Rate":"60.99","Date":"3/11/2014","Time":"9:00am","Ask":"61.00","Bid":"60.98"}}}}"{"error":"","msg":""}
Run Code Online (Sandbox Code Playgroud)
请帮我....
我正在做一个温和的测试file_get_contents.目的是测试是否2 urls确实存在,然后看看它们是否都具有确定性string.
就像是:
$check_url1 = "www.example_1.com";
$check_url2 = "www.example_2.com";
if(
$view_loaded_url1= @file_get_contents($check_url1)&&
$view_loaded_url2= @file_get_contents($check_url2) )
{
var_dump($view_loaded_url1); //RETURNS boolean true
var_dump($view_loaded_url2); //Returns the Contents of the page i.e: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Str.....etc
Run Code Online (Sandbox Code Playgroud)
你如何让两者都返回contents页面而不是boolean?
因为还有一秒if要检查它们是否都包含某些内容string.
就像是:
if(stristr($view_loaded_url1, 'I am the String') && stristr($view_loaded_url2, 'I am the String') {
//....This part cannot go through because $view_loaded_url1 and $view_loaded_url2 are returning different datatype
}
Run Code Online (Sandbox Code Playgroud)
这是正常行为吗?....还有其他人遇到过这种情况吗?