简而言之,我正在寻找一种方法:
$results_array = google("search terms"); // returns array of URLs
Run Code Online (Sandbox Code Playgroud)
因此,举例来说,如果我的搜索词是"猫视频"我的$ results_array [0]可能是YouTube网址,而$ results_array 1可能是在Vimeo.
我已经看到了谷歌自定义搜索API,但它们都需要复杂的JSON的转换,ATOM,REST或其他一些系统这是我想要做的过于复杂.
有没有简单的解决方案?
编辑:我找到了它,感谢另一篇文章
感谢这篇文章,我能够弄明白.简而言之,我只是使用以下内容:
$results = json_decode(file_get_contents(
'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q='.
urlencode($search)));
echo $results->responseData->results[$resultNumber]->url;
Run Code Online (Sandbox Code Playgroud)
我对这些挫折感到有些惊讶和沮丧 - 这似乎是一个非常普遍的问题,实际上,这是一个非常简单的答案.这确实涉及JSON,但它对用户完全透明.也许对我提出的问题更准确的解决方案是:
function google($query) {
$results = json_decode(file_get_contents(
'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q='.
urlencode($search)));
return $results->responseData->results
}
Run Code Online (Sandbox Code Playgroud) 我已经尝试了30分钟的搜索,所以如果已经被问过,我会道歉.
我有一些Ajax返回一组结果,当点击一个结果时,它只需将带有附加数据的URL重新加载到下一页的PHP to GET的URL.问题是,如果用户点击某些内置锚点(我无法删除),则URL将something.com#location1如此附加,?action=next将其转换something.com#location1?action=next为浏览器解释为长锚,而不是实际指向的新URL.
如果用户从不点击锚点部分,则此重定向可以顺利使用 window.location=document.url+"?action=next"
有没有办法从现有页面的URL中删除锚点(包括哈希标记)?
解决了
使用Michael W的答案,我能够解决它.我只是替换了这一行:
window.location=document.url+"?action=next"
有了这个:
window.location=document.location.href.match(/(^[^#]*)/)[0]+"?action=next"
谢谢您的帮助!
我不敢问这个问题,但是由于某种原因,我的文件无法正常工作。它称为ajax.php(尽管不要介意名称),这里是确切的代码:
<?php
error_reporting(-1);
print_r($_POST);
print_r($_FILES);
?>
<form action="ajax.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<input type="text" name="first" value="Bob" />
<input type="text" name="middle" value="James" />
<input type="text" name="last" value="Smith" />
<input type="file" name="something" />
<input type="submit" value="Submit" />
</form>
Run Code Online (Sandbox Code Playgroud)
当我提交而不附加文件时,它将在数组中打印数据。当我提交文件时,不会填充任何数组。
我想念什么明显的东西???
没有文件
Array ( [MAX_FILE_SIZE] => 30000 [first] => Bob [middle] => James [last] => Smith )
Array ( [something] => Array ( [name] => [type] => [tmp_name] => [error] => 4 [size] => 0 ) )
Run Code Online (Sandbox Code Playgroud)
带文件
Array ( …Run Code Online (Sandbox Code Playgroud) 我有一个 AdSense 帐户,只需复制/粘贴一段 Javascript 即可在我的网站上添加广告。然而,由于我没有放置任何 HTML,Js 正在生成一个 iframe 和一个广告出现在其中的 ins 元素。
我想将这些广告移至内容的左侧,在那里我为它们留出了空间。我尝试添加像“ins, iframe {position:absolute;left:0;top:0;}”这样的CSS,但它似乎被覆盖了。
所以我的问题是:如何强制 AdSense 广告出现在我想要的位置?最好用CSS。
我正在尝试将电子邮件跟踪添加到我为小型客户业务构建的Web服务中.我正计划进行嵌入式图像解决方案(参考我服务器上的图像) - 除非其他人有更好的方法 - 但是当我使用引用我的服务器上的PHP页面的图像标签时,它会加载"已损坏的图像"图标.如何将其设为有效图像?
这是邮件PHP页面的代码:
<?php
$body = "<html>Hello there!".
"<img src='http://mysite.com/track.php?name=bob' />".
"</html>";
$subject = "Tracking on ".date('Y-m-d H:i:s');
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: webmaster@mysite.com' . "\r\n";
mail('my_email@gmail.com',$subject,$body,$headers);
?>
Run Code Online (Sandbox Code Playgroud)
这是跟踪代码:
<?php
include('database_connection.php');
$query = "INSERT INTO tracking SET name='".$_GET['name']."', date=NOW()";
mysql_query($query);
// Tried this, but it doesn't work:
echo "<img src='http://mysite.com/photos/image.jpg'>";
?>
Run Code Online (Sandbox Code Playgroud) 我正在使用jQuery DataTables在我的系统中显示记录,通常包含<form>它和一些内联选项(如复选框作为表的列之一).当我使用内置搜索框时,它会缩小显示的列表.如果我编辑其中一条记录,则只提交表单显示的记录POST,而不是所有记录.我想改变那种行为.
例如,假设我有一个像这样的dataTable:
+---------+--------+
+ Name | Option |
+---------+--------+
+ Adam | [X] |
+ Bob | [X] |
+ Chris | [ ] |
+---------+--------+
Run Code Online (Sandbox Code Playgroud)
我搜索Chris,这使得表格看起来像这样:
+---------+--------+
+ Name | Option |
+---------+--------+
+ Chris | [ ] |
+---------+--------+
Run Code Online (Sandbox Code Playgroud)
我检查他的选项框,然后提交表格.因为当我提交时没有显示其他两个,其他两个没有POST,所以我最终得到这个:
+---------+--------+
+ Name | Option |
+---------+--------+
+ Adam | [ ] |
+ Bob | [ ] |
+ Chris | [X] |
+---------+--------+
Run Code Online (Sandbox Code Playgroud)
显然我想要检查亚当和鲍勃的盒子.如何在我的系统中默认更改dataTables中的此行为?
如果不可能,我如何 …
我有一个处理信用卡处理的PHP文件.它以表格形式输入信用卡号,然后成为"确认"屏幕(显示信用卡号),然后再一次处理并显示结果.所有三个加载都将通过PHP提交完成(我意识到确认可能更好,因为Javascript,但我没有写它).它是目录中处理信用卡的唯一文件,因此它是唯一需要httpS连接的文件.
我尝试使用$ _SERVER数组强制执行此操作,查找用于从SCRIPT_URI(或其他条目)的前缀连接的协议,但没有一个具有前缀.
有没有一种简单的方法来使用同一目录中的.htaccess文件?如何仅针对一个文件强制执行该操作?如果还有其他简单方法,我该怎么做?
很抱歉这些问题,但到目前为止我的搜索还没有发现一个有效的解决方案,我担心我不知道最佳做法是什么.
谢谢!
我有一个我正在构建的网页,我需要通过下拉列表选择1-9个成员,然后提供许多输入字段来输入他们的名字.每个名称字段下面都有一个"建议"div,其中填充了ajax-fed成员列表.该列表中的每个项目都有一个"onclick ='setMember(a,b,c)'"字段.一旦输入字段失去焦点,我们然后验证(使用ajax)输入用户名正好返回1个数据库条目,并将字段设置为该条目的文本,并将相关的隐藏memberId字段设置为该条目的id.
问题是:当我点击建议框中的成员名称时,失去焦点会触发,它会尝试验证具有多个匹配项的名称,从而清除它.我确实希望它清除无效,但我不希望它在建议框名称的onclick之前清除.
例:

在上面的例子中,如果建议列表中只有一个名称失去焦点,保罗史密斯会填好,但如果我尝试在建议区域点击拉斐尔的名字(即:点击灰色div),它将消灭输入字段首先.
这是javascript,为简洁而修剪:
function memberList() {
var count = document.getElementById('numMembers').value;
var current = document.getElementById('listMembers').childNodes.length;
if(count >= current) {
for(var i=current; i<=count; i++) {
var memberForm = document.createElement('div');
memberForm.setAttribute('id', 'member'+i);
var memberInput = document.createElement('input');
memberInput.setAttribute('name', 'memberName'+i);
memberInput.setAttribute('id', 'memberName'+i);
memberInput.setAttribute('type', 'text');
memberInput.setAttribute('class', 'ajax-member-load');
memberInput.setAttribute('value', '');
memberForm.appendChild(memberInput);
// two other fields (the ones next to the member name) removed for brevity
document.getElementById('listMembers').appendChild(memberForm);
}
}
else if(count < current) {
for(var i=(current-1); i>count; i--) {
document.getElementById('listMembers').removeChild(document.getElementById('listMembers').lastChild);
}
}
jQuery('.ajax-member-load').each(function() {
var …Run Code Online (Sandbox Code Playgroud) 我正在使用此处找到的 excelToArray 函数:https ://gist.github.com/calvinchoy/5821235
function excelToArray($filePath, $header = true) {
require_once("./PHPExcel/Classes/PHPExcel.php"));
//Create excel reader after determining the file type
$inputFileName = $filePath;
/** Identify the type of $inputFileName **/
$inputFileType = PHPExcel_IOFactory::identify($inputFileName);
/** Create a new Reader of the type that has been identified **/
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
/** Set read type to read cell data onl **/
$objReader->setReadDataOnly(true);
/** Load $inputFileName to a PHPExcel Object **/
$objPHPExcel = $objReader->load($inputFileName);
//Get worksheet and built array with first row as …Run Code Online (Sandbox Code Playgroud)